Клуб API Карт

Найдено на тему «метка»:
Смена цвета метки при клике и возврат на изначальный цвет при повторном клике
tairov.87
6 ноября 2017, 15:06

Добрый день! Помогите пожалуйста, на карте вывожу метки для доставки товаров, по умолчанию они красные. Оператор должен выбирать метки кликом, они должны становиться зелеными, это у меня получилось. Не знаю как сделать так, чтобы при повторном клике уже на зеленую метку она вновь стала красной.

function addplacemarkrs(coord1, coord2, iContent, hContent) {
	placemark = new ymaps.Placemark([coord1, coord2], {
		iconContent: iContent,
		hintContent: hContent  
		}, {
		preset: 'islands#redCircleIcon'
		})
		placemarkcollection.add(placemark);
		
        placemark.events.add('click', function (e) {
        // Меняем цвет текущей метки
        e.get('target').options.set('preset', 'islands#darkGreenCircleIcon');
        });
}

2 комментария
метка,API 2.1,событие,click
Таймер и Яндекс карты: таймер (setInterval) выболняется только один раз
rarescrap
28 августа 2017, 11:16

Здравсвуйте. Передо мной стоит задача двигать метку на карте по определенным позициям. Каждую секунду нужно сдвигать метку на новые координаты. Я определил таймер внутри ymaps.ready(function init()), но он срабатывет только один раз. Я хочу знать почему так происходит и как это исправить

2 комментария
таймер,метка,карты,js
Конфликт анимаций
Мелюков Сергей
5 апреля 2017, 12:41

Привет!

При перемещении маркера за пределы карты, карта пытается подстроить свой центр так, чтобы перемещенная метка и ее балун (если он есть) были полностью видны на экране.

Но если в момент такой подстройки сделать setCenter и задать ему duration, то карта начинает дергаться и центруется не в то место, куда было указано и уж точно не в то месте, где была бы видна метка и балун.

Фактически, setCenter + duration во время подстройки карты, запускает одну анимацию во время другой.

Я вижу несколько вариантов решения:

игнорировать другие анимации во время подстройки карты
прервать подстройку, если был вызван setCenter
отключить автоматическую подстройку при выходе метки за пределы карты
иметь возможность определить - находится ли карта в состоянии анимации, чтобы просто не делать setCenter
иметь возможность дождаться окончания подстройки и потом вызвать setCenter
Что-то  из этого реализуемо?

2 комментария
анимация,метка
Мигание кластера
Пархоменко Евгений
31 марта 2017, 12:15

Здравствуйте. Есть задача, нужно чтобы элемент кластера "Диаграмма" мигал двумя цветами, если стоит определенное условие. Отдельно метка меняет свой цвет, а в кластере только если зумить или открывать кластер. Можно ли как-то сделать автообновление кластера?
for (var i = 0, len = trains.length; i < len; i++) {
        var item = new ymaps.Placemark(getStation(trains[i].Station),
        {
            balloonContentHeader: 'Индекс поезда: ' +trains[i].IndexTrain,
            balloonContentBody:getContentBody(trains[i]),
        },
    {});
        if(getColor(trains[i].StationTo)==1){
item.options.set('preset','islands#darkBlueIcon');
item.options.set('defaultPreset','islands#darkBlueIcon');
        }
        else {item.options.set('preset','islands#yellowIcon');
item.options.set('defaultPreset','islands#yellowIcon');        }
        geoObjects.push(item);
    }

10 комментариев
Кластер,метка
Проблема при открытии булета
Valentin
20 декабря 2016, 11:11

При открытии карты, загружаем точки которые может видеть в данный момент пользователь. Контент буллетов подгружается при клике на метку. Новые точки могут загружаться 2 способами:

  1. Использоваие фильтра;
  2. Передвижение по карте с исп. ивента boundschange.

Проблема появляется когда жмакаем на метку на вверху экрана карты (прим.) карта сдвигается на вверх, что бы показать контент балуна. Он подгружается и пропадает, т.к. мы обновляем все точки. Подскажите пожалуйста, как это можно побороть? 

4 комментария
метка,балун
Отображение метки
Удалённый пользователь
10 декабря 2016, 18:01

Добрый вечер. Почему-то одновременно не срабатывает пользовательская картинка и контент метки. Если удалить iconImageHref, то появляется контент метки. Api 2.

ymaps.ready(init);
function init () {
    var myMap = new ymaps.Map("YMapsID", {
        center: [.. координаты..],
        zoom: 17,
        behaviors: ['default', 'scrollZoom'] 
    });

    // Создание метки
    var myPlacemark = new ymaps.Placemark(
        [..координаты..] , 
    { iconContent: 'метка'},
    { iconLayout: 'default#image',
     iconImageHref: '/metka.png'
    } );

    // Добавление метки на карту
    myMap.geoObjects.add(myPlacemark);
}
1 комментарий
метка с изображением,метка,содержимое метки
Расположить метки по карте на сайте автоматически
abakarov499
22 сентября 2016, 15:32

Добрый день!

Столкнулся с такой задачей. У нас на сайте есть карта, и список адресов. Нужно сделать так чтобы адрес посылался в яндекс карты, а в ответ чтобы приходили координаты. Запрос-ответ я вроде понял как делать. А как расположить полученные координаты (метку) на карте?

Спасибо!

1 комментарий
создание карт,Метки со значком,Метки,метка,геокодер,геокодирование
Доступ к кластеру со стороны кластеризованной метки
denis.ezhkov
12 сентября 2016, 19:40

Добрый день. Направьте пожалуйста в нужную сторону. 

На странице есть список элементов, связанных с точками на карте. При клике на элемент я могу получить доступ к соответствующему геообъекту. Иногда этот геообъект входит в кластер. Как получить доступ к этому кластеру, если в настоящий момент геообъект закластеризован? Кластеризую через ObjectManager.

Спасибо

2 комментария
ObjectManager,кластеризация,GeoObject,метка,Кластер
Выбрать объект при клике внутри balloonContent
Krem-Ilia
23 августа 2016, 19:19

Имеется следующее: множество меток на карте, кластеризация включена.

В случае, когда две и более метки приходятся по одному адресу, при клике случается следующее:

Это я сделал путём добавления нужного balloonContent и balloonCaption в properties меток.

В объектах objectManager-а у меня повешен клик:

objectManager.objects.events.add('click', event => { ... }) // - вот так

Вопрос такой - как этот же клик применить к кликам по элементам меню слева на скриншоте? То есть чтобы можно было не только просматривать информацию, но и выбрать элемент. Есть ли какой-то простой способ это сделать с помощью какой-нибудь опции-колбека, куда сразу приходит метка, например?

И ещё у меня попутно возник вопрос, есть такие свойства у кластера, как clusterIcons и clusterIconContentLayout, например. Если смотреть документацию, в том числе тут: https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer-docpage/, то они есть в примерах, но как будто не задокументированы. Есть где-то место, где можно увидеть на них документацию?

6 комментариев
кластеризатор,события,метка
Z- index для текста метки (не балуна)
mail@joksa.ru
16 августа 2016, 06:53

Доброго времени суток. Создаю карту с контактами, реализовал информационные таблички с указанием адреса электронной почты телефонов через стиль метки. Вставляю ссылку malto она соответственно  как и текст перекрыта и не кликабельна. Как реализовать возможность выделения текста (например телефона), копирования и перехода по ссылке. Разместить все это в балуне мешает задача держать открытыми все текстовые таблички их 5 - 6

9 комментариев
метка,zIndex
Прячим метки и кластеры
chi.kozlov
18 июля 2016, 14:20

Суть проблемы:
Есть сайт со слайдами, на определенном слайде подгружается карта и метки.
Через ObjectManager. После размещения всех объектов на карте анимациям на сайте очень плохо (последующие слайды тормозит анимация).

$('ymaps').length = 505

Удаление ObjectManager.removeAll() приводит к подвисанию на 3-4 секунды.
Как понимаю просто само наличие на страницы 500 html объектов приводит к трудностям.

Получается как не оптимизируй, все равно меньше объектов не сделать (кластиризация на сервере и потайловая загрузка). Как оптимизированно спрятать объекты в момент ухода со слайда, не нашел. Однако если просто передвинуть карту где нет меток то:

$('ymaps').length = 70 и все летает просто.

Вопрос как спрятать метки когда они уже не нужны? Простите в документации не нашел.

ObjectManager,API 2.1,JavaScript,Метка,Кластер
Изменение цвета метки при клике (на маршруте)
Константин Филенко
11 июля 2016, 22:25

Доброго времени суток. Не могу сделать изменение цвета метки (или транзитной точки) маршрута при клике на ней ПКМ. 

function calcRoute() {        
    for(var i = 0; i < markers.length; i++) {
        point.push( markers[i].geometry.getCoordinates());
    }

    ymaps.route(point, {
        // Опции маршрутизатора
        mapStateAutoApply: true // автоматически позиционировать карту
    }).then(function (router) {
        router.getPaths().options.set({
             strokeColor: '0000ffff',
             opacity: 0.5
         });

                      
        route = router;
        myMap.geoObjects.add(route);
        

        // Вот здесь мне нужно менять цвет метки при клике
        myMap.events.add('contextmenu', function (e) {
            e.get('target').options.set('preset', 'islands#pinkIcon');
        });

        
        
    }, function (error) {
        alert("Возникла ошибка: " + error.message);
    });        
}

Подскажите пожалуйста, где я дурак?

1 комментарий
метка,событие,Маршрут и точка
Метки с одинаковыми координатами.
Евгений
27 июня 2016, 20:47

Не получается добавить несколько меток так сказать за одну "сессию". Приходится перезагружать страницу, чтобы добавить еще одну. 

Ставим метку, сохраняем, ставим еще одну с другими координатами - сохраняем. В итоге сохраняются 2 метки в бд, НО с одинаковыми координами и у второй странный Placemark. Ломаю голову с этой проблемой. 

Вот весь код: http://codepen.io/evikza/pen/yJgoBy

В версии 2.0 все работало, переписал на 2.1, возникла данная проблема(

5 комментариев
ballon,API 2.1,Метка
getShape() возвращает неправильные координаты
denis.ezhkov
26 июня 2016, 09:27

Вот здесь (http://gobank.testmycoding.ru/kurs.php) подгружается массив точек. Шаблон метки кастомный, при наведении метка должна менять цвет. Если мы находимся в самом верху страницы, то все хорошо. Но если страницу поскроллить немного вниз, то все ломается. Изображение метки перестает реагировать на mouseover. Я заметил, то метка как будто бы виртуально получается смещена ниже своего отображения на количество пикселей, которое мы отскроллили. 

Еще раз поясню алгоритм.

Грузим страницу, выбираем понравившуюся метку, наводим мышь - метка меняет цвет. Чуть скроллим вниз, наводим мышь на ту же метку - реакции нет. Опускаем мышь ниже под метку на количество пикселей, равное скроллу - метка меняет цвет.

Что это может быть и как поправить?

getShape,Метка,шаблоны
Фильтр в ObjectManager
Феликс
17 мая 2016, 14:45

Добрый день.

Фильтрую метки слеюдующим способом:

YAMAP.MMObjectManager.setFilter(function (object) {
    return object.properties.FILTER.CLASS == "Премиум";
});

С Фильтром все ок, но я не пойму как мне получить список отфильтрованных объектов?
 

1 комментарий
ObjectManager,метка,фильтрация
Картографическая генерализация
sedrak.dalaloyan
27 апреля 2016, 12:42

Здравствуйте,

Подскажите, пожалуйста, у яндекс карт есть штатные возможности генерализации меток для разного зума?

1 комментарий
метка,zoom,генерализация,placemark
Смена метки на карте (возможно баг)
Byte916
8 апреля 2016, 15:16

Добрый день

Используется последняя версия карт, которая берется с яндекса по ссылке

https://api-maps.yandex.ru/2.1/?lang=ru_RU&load=package.full

На карте есть метки, которые устанавливаются вот так

preset: 'islands#nightCircleDotIcon',

Также есть таблица со списком меток, при наведении на которые соответствующая метка меняется (а при покидании мыши возвращается) так

        $('#point' + f.Id).mouseenter(function () {
            o.options.unset('iconLayout').set('preset', 'islands#redDotIcon').set('zIndex', '10000')
        });
        $('#point' + f.Id).mouseleave(function () {
            o.options.unset('zIndex').set('preset', 'islands#nightCircleDotIcon')
        });

Собственно, проблема заключается в следующем:

До наведения мыши, и после её покидания

В то время, когда мышь над обьектом

Изменений в код сайта не вносил, проблема появилась сама. В чем может быть проблема, и как её исправить?

8 комментариев
метка
добавить адрес с геокодера в баллун в цикле
AS
22 марта 2016, 15:59

Добрый день, в YMaps сижу пару дней, опыта нету, вопрос в селдующем:

страница при открытии забирает с реста json с массивом объектов, в каждом из которых, помимо прочей информации есть координаты широты и долготы.

необходимо в массиве разместить метки на карте в соответствии с координатами, а также в баллун, который открывается при нажатии наметку поместить адрес, полученный с Y геокодера, а также доп инфу с того же json-a. В моем решении адрес подтягивает только последняя метка (адрес тоже неверный ), остальные не реагируют никак. вот код js

var myMap;
        ymaps.ready(init);
        function init() {
            var markers=[];
            $.ajax({
                        url : 'rc/getalltrack/',
                        type : 'GET',

                        success : function(json) {
                                myMap = new ymaps.Map('map', {
                                center : [ json[0].lat, json[0].lng ],
                                zoom : 10
                            }, {
                                searchControlProvider : 'yandex#search'
                            });
                            for ( var i in json) {
                                markers.push(new ymaps.Placemark([ json[i].lat,
                                        json[i].lng ], {
                                

                                }, {
                                    preset : 'islands#icon',
                                    iconColor : '#0095b6'
                                }));

                                markers[i].events
                                        .add('click',function(e) {
                                                    ymaps.geocode(e.get('coords')).then(
                                                                    function(
                                                                            res) {
                                                                        var firstGeo = res.geoObjects
                                                                                .get(0);
                                                                        markers[i].properties
                                                                                .set({
                                                                                    balloonContent : firstGeo.properties
                                                                                            .get('text')
                                                                                });
                                                                    });
                                                });
                                myMap.geoObjects.add(markers[i]);
                            }
                            
                        }
                    });

        }

7 комментариев
геокодирование,метка
Как удалить метку по клику на ней.
Удалённый пользователь
7 марта 2016, 00:30

Ребята хэлп. Не могу понять как удалить метку в из ее события. Вроде простая тема, бьюсь уже который день.

myPlacemark = new ymaps.Placemark(firstGeoObject.geometry.getCoordinates(), {
                    // Свойства
                    // Текст метки
                    hintContent: txt,                    
                }, {
                    // Опции
                    // Иконка метки будет растягиваться под ее контент
                    preset: col
                });
                  //Событие клика по метке
                myPlacemark.events.add('click', function (q) {
                     if (!noclick) {
                            var thisPlacemark = q.get('target');

                               Вот это проклятая строчка выбрасывает с ошибкой.
                             myMap.geoObjects.remove(thisPlacemark);   

                  
                     }else{
                        noclick = false;
                     }
                 });
                myMap.geoObjects.add(myPlacemark);
 

2 комментария
placemark,метка,объекты
Динамический балун
Удалённый пользователь
5 февраля 2016, 10:18

Добрый день. 

Понимаю что уже полно постов на эту тему, но что то все старые и вскорее всего, что уже изменилось API. 

Вывожу на карту большое количество точек. При большом масштабе карты они собираются в кластер. По клику на кластер или метку нужно отправить ajax с id метки или массив id меток входящих в кластер, чтобы получть инфу по этим объектам и создать балун с ней. 

Какое событие нужно слушать и как получить список ID?

1 комментарий
балун,метка,кластер,событие,AJAX