Клуб API Карт

Помогите разобраться, поиск объекта по координатам (xml)

ercan
13 июня 2010, 20:37

Для отображения множества объектов на карте подгружаю XML-файл.

При клике на ссылку для открытия балуна использую следующий код:

 

YMaps.Events.observe(ml, ml.Events.Load, function () {
   var obj = this.filter(function (obj) {
     return obj.id == 'некий id';
   });
   obj[0].openBalloon();
});

 

Вопросов несколько:

- как выдернуть координаты для найденного объекта obj ?

- можно ли организовать поиск (выборку) по координатам объекта ?

6 комментариев
Подписаться на комментарии к посту

Получить координаты найденного объекта можно с помощью метода getGeoPoint();



var geoPoint = obj[0[.getGeoPoint();

Можно искать объекты по любому полю, в том числе и по значению координат. Для этого в методе filter сравнивайте координаты:



YMaps.Events.observe(ml, ml.Events.Load, function () {
    var obj = this.filter(function (obj) {
        return obj.getGeoPoint().equal(point);
    });
    obj[0].openBalloon();

где point - это координаты объекта.

YMaps.Events.observe(ml, ml.Events.Load, function () {
    var obj = this.filter(function (obj) {
    alert(new YMaps.GeoPoint(xpos, ypos));
    return obj.getGeoPoint().equal(new YMaps.GeoPoint(xpos, ypos)); // спотыкается на этой строке...
    });
    obj[0].openBalloon();
});

Дайте ссылку на страницу.

уже реализовал через поиск по id


результаты тут  http://wsus.spb.ru 

Сделайте так:


var obj = this.get(0).filter(function (obj) {
    return obj.getGeoPoint().equal(new YMaps.GeoPoint(xpos, ypos));
});

Спасибо, так работает ))