Клуб API Карт

Выделить метки в области

Boarddog
24 октября 2012, 11:43

Добрый день. Подскажите пожалуйста.

Создал колекуию точек

collection = new ymaps.GeoObjectCollection();

placemark = new ymaps.Placemark([55.856435, 37.633545]);
collection.add(placemark); 

...........................

placemark = new ymaps.Placemark([25.856435, 27.633545]);
collection.add(placemark);


myMap.geoObjects.add(collection);

 

Создал многоугольник

    myGeometry = {
      type: 'Polygon',
      coordinates: [
    [
      [55.75, 37.50],
      [55.80, 37.60],
      [55.70, 37.70]
    }

// Создаем геообъект с определенной (в switch) геометрией.
     var myGeoobject = new ymaps.GeoObject({geometry: myGeometry}, myOptions);

myMap.geoObjects.add(myGeoobject);

 

Теперь при перетаскивании объекта я хочу выделять маркеры попавшие в область.

           myGeoobject.events.add('geometrychange', function (event) {   
               setActivePoints(collection);
              });

 

                  function setActivePoints (collection) {
                     collection.Each(function (obj) { ... Это не работает
    ВОТ ТУТ НЕ ЗНАЮ КАК ПРАВИЛЬНО ПЕРЕБРАТЬ МЕТКИ 


                      });
                }



 

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

методы всегда и везде именуют с маленкой буквы

collection.Each -> collection.each

я в шоке. большое спасибо. все перепробовал уже. даже смешно стало.

еще для обработки окончания перетаскивания геообъекта

нужно слушать событие dragend, а не geometrychange

спасибо. не подскажите как в маем случае применить getGeoPoint

что такое getGeoPoint?

 в функцию я передал объект полигона

function setActivePoints (collection,myGeoobject)в

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

делаю так

if (myGeoobject.geometry.contains(  Я ДУМАЮ ТУТ ДОЛЖНО БЫТЬ КАК ТО ТАК obj.getGeoPoint() но такого метада нету       ))

{

тут раскраска метки

}

такого метода нет

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/geometry.Point.xml

_метка_.geometry.getCoordinates()

Еще раз спасибо. все получилось.