Добрый день!
Сколько не смотрел примеры по API карт, но так и не набрел на способ удаления одной метки из области меток.
Итак, исходные данные: есть группа меток, необходимо одну метку удалить.
Способ удаления: нажимается контексное меню и выбирается пункт "удалить метку".
Как это делается?
Я понимаю что нужно воспользоваться функцией map.geoObjects.remove(object), но как определить этот объект?
на данный момент код такой
var objectid = e.get('target').properties.get('id');
тут создается контексное меню, в котором есть пункт удалить
});
как передать ссылку на объект, чтобы можно было потом удалить эту метку?
UPD 1:нашел такой образец:
DriverCollection.each(function (item) {
if (item.properties.get('name') == idDriver) {
//item.geometry.setCoordinates([latitude, longitude]);
DriverCollection.remove(item);
}
});
Переделал под себя
myMap.geoObjects.each(function (item) {
if (item.properties.get('id') == objectid) {
myMap.geoObjects.remove(item);
}
});
но он не работает, утверждая что у объекта item нет таких свойств
UPD 2: это все мои кривые руки. Вот так правильно:
myMap.geoObjects.each(function (item) {
if (typeof item.properties != 'undefined') {
if (typeof item.properties.get('id') != 'undefined') {
if (item.properties.get('id') == objectid) {
if (typeof item.properties.get('id') != 'undefined') {
if (item.properties.get('id') == objectid) {
myMap.geoObjects.remove(item);
}
}
}
});
Возможно громоздко, но зато работает удаление метки )