tulov / angular-yandex-map Goto Github PK
View Code? Open in Web Editor NEWAngularJS directive to work with Yandex maps
AngularJS directive to work with Yandex maps
Points, linestrings, rectangles - nothing works.
The rest works just fine.
Cannot read property 'panTo' of undefined
at h.$scope.replace (http://192.168.168.23:5757/js/controllers.js:269:10)
$scope.replace=function(){
$scope.type='yandex#publicMapHybrid';
map.panTo([34.461,62.915], {
// Задержка перед началом перемещения.
delay: 15000
});
Забавно то что карта перепрыгивает на точку, правда без анимации. На демо страничке эта ошибка появляется только если карта не успела отрендерится.
Помогите?
Создаю пустой проект. Добавляю ссылку на AngularJS и данный фреймворк. Делаю инъекцию 'yaMap' и в html вставляю примитивный код:
но карта не отображается. Какие действия пропустил или сделал не правильно? Было бы круто увидеть совсем простой готовый проект для VS2013.
I could not find the sources at first glance. I did not expect them to be in the "example" folder.
Здравствуйте!
Ниже на скриншоте пример разметки. Вы можете видеть символы табуляции(серые стрелки).
В директиве yaMap, для выборки элементов, Вы используете метод contents(), который выбирает текстовые ноды. В данном случае это символы переноса строки и табуляции.
После выполнения строки tElement.html(''); возникает следующая ситуация
Далее, при добавлении элементов, это приводит к ошибкам. В следствии этого, невозможно использовать элементы управления(они просто отсутствуют).
Этого можно избежать если писать все в одну строку. Элементарное решение, но влияет на читабельность кода.
Еще один способ избежать этого - использовать метод children() для выборки. Метод children() не возвращает текстовые ноды.
https://tech.yandex.ru/maps/doc/jsapi/2.0/ref/reference/Map-docpage/#setZoom
Через ya-zoom масштаб не меняется
столкнулся с тем что простая вставка не работает . все вроде добавил, прописал как написано (в описание app, в контроллер ), консоль молчит, отображения 0. стал копировать из примеров "навороченные" описания. появился Яндекс - квадрат, похож на квадрат Малевича, только на нем Яндекс написано. был бы простой пример - понял бы, где проблема.
Hello!
How to fix this?
"Controller 'yaMap', required by directive 'yaGeoObject', can't be found!"
yaMap does'n used in this directive, can I remove "yaMap" from require statement?
Custom template for hint gives Uncaught TypeError: Cannot read property 'getModuleSync' of null
error in Google Chrome console and hint does not show up. But balloonContentLayout
works.
My code:
<ya-template-layout ya-key="orderBalloonTemplate">
<div class="ya-balloon">
<span class="field-label">Адрес:</span> {{properties.orderFromAddress}}<br/>
<span class="field-label">Время:</span> {{properties.orderTime}}<br/>
<span class="field-label">Клиент:</span> {{properties.clientName}}<br/>
<span class="field-label">Комментарий:</span> {{properties.clientComment}}
</div>
</ya-template-layout>
<ya-template-layout ya-key="orderHintTemplate">
<div class="ya-hint">
<b>{{properties.orderFromAddress}}</b><br/>
{{properties.orderTime}}<br/>
</div>
</ya-template-layout>
<ya-map ya-zoom="12" ya-type="yandex#map" ya-center="{{ map.center }}">
<ya-geo-object ng-repeat="o in geoOrdersFrom" ya-source="o"
ya-options="{preset:'islands#blueStretchyIcon', hintContentLayout:'orderHintTemplate', balloonContentLayout:'orderBalloonTemplate'}"
ya-event-mouseenter="orderHintShow(o.orderId)"
ya-event-mouseleave="orderHintHide()"></ya-geo-object>
<ya-geo-object ng-repeat="o in geoOrdersTo | filter:{orderId:mapSelectedOrderId}"
ya-options="{preset:'islands#redStretchyIcon'}"
ya-source="o"></ya-geo-object>
<ya-geo-object ng-repeat="o in geoDrivers" ya-options="{preset:'islands#orangeStretchyIcon'}"
ya-source="o"></ya-geo-object>
</ya-map>
Карты не работают в версии AngularJS 1.2.9.
Почему нет свойства main в bower.json?
Таскранеры не могут обработать этот пакет т.к. не знают какой файл добавлять в билд!
Должно быть:
{
"name": "ya-map",
"version": "1.0.4",
"main": "ya-map-2.1.min.js",
"dependencies": { "angular": "~1.0.3" }
}
Пробовал создавать руками, ни в какую.
<ya-map ya-zoom="12" ya-type="yandex#publicMap" ya-center="currentCoords" ya-event-dblclick="mapClick($event)" ya-after-init="afterMapInit($target)">
<ya-collection ya-options="{preset: 'islands#yellowIcon'}">
<ya-geo-object ng-repeat="o in geoObjects" ya-source="o"></ya-geo-object>
</ya-collection>
</ya-map>
$ ionic info
Your system information:
Cordova CLI: 5.4.1
Ionic Version: 1.1.1
Ionic CLI Version: 1.7.13
Ionic App Lib Version: 0.6.5
ios-deploy version: 1.8.2
ios-sim version: 5.0.1
OS: Mac OS X El Capitan
Node Version: v5.5.0
Xcode version: Xcode 7.2 Build version 7C68
angular.module('starter',['ionic','ngCordova','yaMap','starter.controllers'])
.config(function(yaMapSettings){
yaMapSettings.setOrder('latlong');
})
;
13218Error: [$injector:modulerr] Failed to instantiate module starter due to:
[$injector:unpr] Unknown provider: yaMapSettings
http://errors.angularjs.org/1.4.3/$injector/unpr?p0=yaMapSettings
http://localhost:8100/lib/ionic/js/ionic.bundle.js:8900:32
http://localhost:8100/lib/ionic/js/ionic.bundle.js:13094:34
getService@http://localhost:8100/lib/ionic/js/ionic.bundle.js:13241:46
invoke@http://localhost:8100/lib/ionic/js/ionic.bundle.js:13273:23
runInvokeQueue@http://localhost:8100/lib/ionic/js/ionic.bundle.js:13188:40
http://localhost:8100/lib/ionic/js/ionic.bundle.js:13197:25
forEach@http://localhost:8100/lib/ionic/js/ionic.bundle.js:9168:24
loadModules@http://localhost:8100/lib/ionic/js/ionic.bundle.js:13178:12
createInjector@http://localhost:8100/lib/ionic/js/ionic.bundle.js:13104:22
doBootstrap@http://localhost:8100/lib/ionic/js/ionic.bundle.js:10462:34
bootstrap@http://localhost:8100/lib/ionic/js/ionic.bundle.js:10483:23
angularInit@http://localhost:8100/lib/ionic/js/ionic.bundle.js:10377:14
http://localhost:8100/lib/ionic/js/ionic.bundle.js:37191:16
trigger@http://localhost:8100/lib/ionic/js/ionic.bundle.js:11828:9
eventHandler@http://localhost:8100/lib/ionic/js/ionic.bundle.js:12103:25
http://errors.angularjs.org/1.4.3/$injector/modulerr?p0=starter&p1=%5B%24injector%3Aunpr%5D%20Unknown%20provider%3A%20yaMapSettings%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.4.3%2F%24injector%2Funpr%3Fp0%3DyaMapSettings%0Ahttp%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A8900%3A32%0Ahttp%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A13094%3A34%0AgetService%40http%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A13241%3A46%0Ainvoke%40http%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A13273%3A23%0ArunInvokeQueue%40http%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A13188%3A40%0Ahttp%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A13197%3A25%0AforEach%40http%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A9168%3A24%0AloadModules%40http%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A13178%3A12%0AcreateInjector%40http%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A13104%3A22%0AdoBootstrap%40http%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A10462%3A34%0Abootstrap%40http%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A10483%3A23%0AangularInit%40http%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A10377%3A14%0Ahttp%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A37191%3A16%0Atrigger%40http%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A11828%3A9%0AeventHandler%40http%3A%2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A12103%3A25
Откройте демонстрационную страницу в IE 10(десктоп, метро или windows phone 8). Объекты отсутствуют.
http://tulov-alex.ru/geoobjects/list-objects
Если поместить ya-geo-object в yaMap, то объекты отображаются. Если поместить в yaCollection, то не отображаются.
http://popov.skyboxua.com/map/test.html
В списке создаваемым через ng-repeat, в каждом элементе иметься карта, но при этом создается только в последнем элементе списка, остальные не инициализируються.
В обсуждениях яндекс API нашел тред о том что нужно для каждой карты создать свою переменную, но у меня для каждого элемента списка имеется свой контроллер с функциями инициализации и соответсвенно для каждой карты создается своя переменная.
Карта не отображается, в отличии от vanilla yandex карт, пример
http://plnkr.co/edit/Wvf7EPUprFCqNTCDkMS0
В примерах написано afterMapInit($map), при попытке повторить не работает!
В то же время, в коде примера afterMapInit($target).
Исправьте, не вводите людей в заблуждение!
Я рисую полигон. Когда нарисовал, сохраняю, в следующий раз загружаю из бд.
Мне нужно динамический менять с обычного состояния на ya-edit или ya-draw мой полигон. Вопрос: как это сделатЬ?
мой обьект:
<ya-geo-object
ng-repeat="zone in geoObjects"
ya-source="zone"
ya-event-geometrychange="getVertex($event, $index)"
ya-options="{editorDrawingCursor: 'crosshair',editorMaxPoints: 999,fillColor: '#00FF00',strokeColor: '#0000FF',strokeWidth: 5, opacity:0.3}"
ya-after-init="setObject($target)"
>
Как получить значение текущего zoom и установить его уже после инициализации карты?
Когда использую директиву yaTemplateLayout
, в сервисе templateLayoutFactory
вылетает ошибка ymaps is undefined
. Похоже что api яндекс карт не успевают подгрузится до того как начинается компиляция директивы.
Даже в примерах
http://tulov-alex.ru/2.1/geoobjects/points
Я так понимаю, что таким образом будет производится только инициализация, но не прослушивание:
А как должен выглядеть код, если нужно ввести обе координаты через input форму вручную или вытащить из репозитария после его подгрузки? Похоже, наиболее близкий пример этот: http://tulov-alex.ru/2.1/geolocation/api, но всё же пока трудно применимый для конкретного случая.
Можно ли устанавливать позиции для стандартных элементов управления? Если да можно пример, пожалуйста.
Добрый день всем!
Конечно понимаю, может это не проблема этого плагина/модуля (или как правильно называется), но почему я не могу вызвать функцию? Ошибок нет.. Если вне карты вызываю - все работает..
Помогите, куда копать..?
"На картах поисковых систем по умолчанию показываются координаты в градусах с десятичной дробью со знаками «-» для отрицательной долготы. На картах Google и картах Яндекс вначале широта, затем долгота (до октября 2012 на картах Яндекс был принят обратный порядок: сначала долгота, потом широта)." - https://ru.wikipedia.org/wiki/Географические_координаты
В модуле наборот - вначале долгота, потом широта. Может, стоит сделать по стандарту? Или хотя бы иметь возможность выбирать способ задания координат, не вмешиваясь в исходный код модуля.
В документации ya-show-all, в коде showAll(в обеих версиях апи).
Код: https://github.com/tulov/angular-yandex-map/blob/master/example/2.1/ya-map-2.1.js#L445
При загрузке карты выдает warning:
The -webkit-canvas CSS feature is deprecated. Please use a positioned element instead.
В мобильных приложениях на базе Apache Cordova протоколом является 'file://', из-за чего строка в ya-map-2.2.js:76
:
var loadUrl = '//api-maps.yandex.ru/'+yaMapSettings.version+'/?load=package.full&lang=' +
yaMapSettings.lang +'&coordorder=' +yaMapSettings.order;
Формирует ссылку вида: file://api-maps.yandex.ru/...
и не может загрузить скрипт.
Здравствуйте!
Возникла у меня проблема с установкой атрибута ya-center для директивы yaMap.
Если захардкодить координаты в html, то все нормально.
ya-center="[33.737241,67.588442]"
Как только пытаюсь брать значение с контроллера, то отображается мое текущее местоположение.
ya-center="{{mapConfig.CENTER}}"
Демка http://popov.skyboxua.com/map/test.html
Спасибо.
Возможна ли работа с версиями Angular выше 1.0.. У меня при установке ругается bower-asset/angular-yandex-map 1.0.4 requires bower-asset/angular ~1.0.3 -> no matching package found. Установлена версия Angular 1.4.8/
<ya-map ... ya-event-geo-objects-add="onObjectAdded()">
Использование директивы ya-event-geo-objects-add вызывает ошибку: Cannot read property 'events' of undefined
Если спрятать карту, а потом опять показать - маркеры выведение через ng-repeat исчезнут.
Проблема где то здесь:
var childNodes = tElement.children(), centerCoordinatesDeferred = null; tElement.html(''); ... element.append(childNodes); setTimeout(function(){ scope.$apply(function() { $compile(childNodes)(scope.$parent); }); });
<ya-map ya-zoom="8"></ya-map>
Uncaught TypeError: Object.keys called on non-object
http://tulov-alex.ru/2.1/geoobjects/list-objects. Открывая баллуны меток через ссылки, метки исчезают с карты, но в dom эти элементы остаются.
<ya-control ya-params="{data: {content: controls.myControlName} }" ya-type="button"></ya-control>
<ya-control ya-params="controls.myControlName" ya-type="button" ya-type="button"></ya-control>
Название кнопки не считывается из $scope.controls.myControlName.
При программном создании большого кол-ва полигонов (100+) и затем удалении в цикле по одному - где-то в середине цикла выбрасывает ошибку "Cannot read property 'remove' of undefined".
var polygons = [];
for (var i = 0; i < 100; i++) {
var polygon = new ymaps.Polygon([coordinates], {
balloonContent: "",
}, {
draggable: false,
editorMaxPoints: 5000,
fillColor: '#303285',
strokeColor: '#080B74',
strokeWidth: 3,
opacity: 0.3,
zIndex: 1000,
});
polygons.push(polygon);
}
polygons.map(function(polygon) {
myMap.geoObjects.remove(polygon);
});
Подскажите, как можно сделать программное центрирование? Даже в вашем примере http://tulov-alex.ru/2.1/map/change второй клик по кнопке не воспринимается.
Вот постоянно такая ошибка в консоле. Сама карта отображается корректно, тоесть все работает.
Error: [$compile:ctreq] Controller 'yaMap', required by directive 'yaGeoObject', can't be found!
Это html код
<div class="wrap wrap-user-map" ng-hide="loading">
<ya-map ya-behaviors="-default" class="map" ya-zoom="5" ya-center="{{center}}" ya-controls=""><ya-geo-object ya-source="geoObject"></ya-geo-object>
</ya-map>
</div>
Angular 1.3
Вставил вот такой код:
HTML:
<ya-map ya-zoom="10" ya-center="center" ya-after-init="afterMapInit($target)"> <ya-geo-object ya-source="marker"></ya-geo-object> </ya-map>
JS:
`$scope.marker = {
geometry: {
type: 'Point',
coordinates: [долгота, широта]
},
properties: {
iconContent: "Название",
balloonContentHeader: "Название",
balloonContentBody: "описание",
balloonContentFooter: "подвал",
hintContent: "Название"
}
}
var _map;
$scope.afterMapInit = function(map){
_map = map;
};`
CSS
ya-map{ width: 300px; height: 300px; }
Карта не рисуется, выдается ошибка
Uncaught TypeError: e.get(...).split is not a function
много раз...
Не могу понять в чем причина...
По непонятным причинам не работает отображение на Android 4+ устройствах, на iOS работает отлично, на десктопе тоже.
Покурю логи скину сюда.
Хотел установит модуль через bower install ya-map --save
но получил ошибку Package ya-map not found
Добрый день,
возможно ли добавление объектов через ObjectManager. Если да, покажите, как это можно сделать, пожалуйста.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.