Клуб API Карт

назначить аттрибут "id" метке

Пост в архиве.

при подключении карт на странице является код точки

<div class="YMaps-placemark YMaps-Default YMaps-cursor-pointer" style="....

 

как можно расширить выходной html (div) аттрибутом id?

 

такое API решение: ...

var placemark = new YMaps.Placemark( map.getCenter() );
placemark.id = 'point01';

... не подходит, ибо задает id в рамках объекта YMaps.Placemark, а не на выход html

9 комментариев

Посмотрите ряд схожих обсуждений:


http://clubs.ya.ru/mapsapi/posts.xml?tag=10614154

посмотрел, спасибо!


нашел ответы на другие вопросы, но не на свой. мне бы хотя бы обернуть placemark в div. не брать же каждый placemark в отдельную группу? :)

var content = YMaps.jQuery("контент"); placemark.setBalloonContent(content[0]);

спасибо, но так я уже пробовал.


как говорил Вини Пух ".... не совсем в шарик"


дело в том, что в предложенном Вами варианте id присваивается не метке, а содежванию балуна, которого нет, пока не кликали по метке. ни балуну ни метке от этого id никак и ничего.


выходит проблема неразрешима... жаль.


еще раз, спасибо!

Я, скорее всего не совсем правильно понял вашу задачу, расскажите подробнее для чего вам нужен id у метки и что дальше с ним вы хотите делать.

id мне нужен для манипулирования его состоянием.


например, есть карта с маркерами имеющими id (bbbID) и есть страница на которой иногда появляются (Ajax) элементы с похожими id (aaaID), которые нужно сдруживать. задача усложняется тем, что ни элементы страницы, ни элементы карты друг про друга знать не могут. задач манипулирования уйма и без id это манипулирование делать невозможно. даже подсветить рядом стоящие маркеры (сменить бакгроунд дива) в зависимости от динамических условий невозможно - не переписывать же все комбинации содержимого кафешек в группы? :)


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

Если необходимо связывать метку и какой-то внешний элемент, то необязательно прописывать id в верстку метки. Вы можете храните все свои метки, например, в группе и когда необходиму будет найти нужную метку по id - просто сделать фильтр:



var group = new YMaps.GeoObjectCollection();
var bbbObjects = group.filter(function (obj) { return obj.id == "bbbID" });

А дальше работаете с массивом объектов bbbObjects.

спасибо.


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

rodlex,
Ну например, я хочу мышкой подвигать эту метку, как в примере https://tech.yandex.ru/maps/jsbox/2.1/request_map
Допустим, есть входные данные в виде адреса. Геокодером получаем координаты этого адреса и ставим метку в полученных координатах. Смотрим, а метка на соседнем здании а не на нужном нам (по разным причинам, например большая промзона, которая вся под одним адресом живет). А теперь хотим эту установленную метку передвинуть мышкой на нужное нам здание и запомнить его координаты.