Есть код, он выводит заголовки меток в генерируемое меню
пример из песочницы: https://tech.yandex.ru/maps/jsbox/2.1/ymapsml_menu
Мой код, с определением геолокации по ip
ymaps.ready(init);
function init () {
// Создание экземпляра карты
var geolocation = ymaps.geolocation,
myMap = new ymaps.Map('map', {
center: [55.76, 37.64],
zoom: 12
}, {
searchControlProvider: 'yandex#search'
});
geolocation.get({
provider: 'yandex',
mapStateAutoApply: true
}).then(function (result) {
// Красным цветом пометим положение, вычисленное через ip.
result.geoObjects.options.set('preset', 'islands#redCircleIcon');
result.geoObjects.get(0).properties.set({
balloonContentBody: 'Мое местоположение'
});
myMap.geoObjects.add(result.geoObjects);
});
ymaps.geoXml.load('/map1.xml?v=' + (+new Date()))
.then(function (res) {
res.geoObjects.each(function (item) {
addMenuItem(item, myMap);
});
},
// Вызывается в случае неудачной загрузки YMapsML-файла.
function (error) {
alert("При загрузке YMapsML-файла произошла ошибка: " + error);
});
function addMenuItem(group, map) {
// Показать/скрыть группу геообъектов на карте.
$("<a class=\"title\" href=\"#\">" + group.properties.get('name') + "</a>")
.bind("click", function () {
var link = $(this);
// Если пункт меню "неактивный", то добавляем группу на карту,
// иначе - удаляем с карты.
if (link.hasClass("active")) {
map.geoObjects.remove(group);
} else {
map.geoObjects.add(group);
}
// Меняем "активность" пункта меню.
link.toggleClass("active");
return false;
})
// Добавление нового пункта меню в список.
.appendTo(
$("<li></li>").appendTo($("#map_menu"))
);
}
}Задача: сделать автоматическую сортировку вывода меток в зависимости от их геолокации. Например, если пользователь из Питера, вывести в эту менюшку* именно те метки, которые расположены в Питере.
Понимаю, что нужно собрать "Питерские" метки в коллекцию, и из нее уже выводить. Но как сделать этот вывод автоматическим, исходя из геолокации?