Здравствуйте! Начал разбираться с Яндекс.Картами и столкнулся с такой проблемой: когда пользователь делает определённое действие (кликает на кнопку) на карту выводятся метки и список этих меток (под картой) отсортированный по отдалённости от местоположения пользователя (и что бы параметр метки "id" тоже отображался). Первое получилось сделать, а вот второе - не знаю как реализовать(
Буду очень благодарен за помощь!
PS. вот мой код, может как-то поможет
function init () {
var geolocation = ymaps.geolocation;
var myMap = new ymaps.Map('map', {
center: [53.9214, 27.5695],
zoom: 16,
controls: ['zoomControl','geolocationControl']
});
var myCollection = new ymaps.GeoObjectCollection();
var UserCollection = new ymaps.GeoObjectCollection();
// Сравним положение, вычисленное по ip пользователя и
// положение, вычисленное средствами браузера.
geolocation.get({
provider: 'yandex',
mapStateAutoApply: true
}).then(function (result) {
// Красным цветом пометим положение, вычисленное через ip.
result.geoObjects.options.set('preset', 'islands#redCircleIcon');
result.geoObjects.get(0).properties.set({
balloonContentBody: 'Ваше предположительное местоположение'
});
UserCollection.removeAll();
UserCollection.add(result.geoObjects);
});
geolocation.get({
provider: 'browser',
mapStateAutoApply: true
}).then(function (result) {
// Синим цветом пометим положение, полученное через браузер.
// Если браузер не поддерживает эту функциональность, метка не будет добавлена на карту.
result.geoObjects.options.set('preset', 'islands#blueCircleIcon');
UserCollection.removeAll();
UserCollection.add(result.geoObjects);
});
myMap.geoObjects.add(UserCollection);
$(document).on("click", ".button", function(){
myCollection.removeAll();
var t = $(this).text();
$.ajax({
type: "GET",
url: "q.php",
data: {name: t},
success: function(msg){
var d = JSON.parse(msg);
console.info(d);
for(var i=0;i< d.length;i++){
var myPlacemark = new ymaps.Placemark([d[i].lng, d[i].lat], {
balloonContentHeader: d[i].name,
balloonContentBody: d[i].descriptions,
hintContent: d[i].name,
id: d[i].id
});
myCollection.add(myPlacemark);
}
myCollection.events
.add('mouseenter', function (e) {
// Ссылку на объект, вызвавший событие,
// можно получить из поля 'target'.
e.get('target').options.set('preset', 'islands#greenIcon');
})
.add('mouseleave', function (e) {
e.get('target').options.unset('preset');
});
myMap.geoObjects.add(myCollection);
}
});
});
}
ymaps.ready(init);
Заранее спасибо за любую помощь!