Клуб API Карт

Фильтрация меток

Пост в архиве.

 метки добавляются на карту с помощью addOveray из этого XML 

<ymaps:ymaps xmlns:ymaps="http://maps.yandex.ru/ymaps/1.x" xmlns:gml="http://www.opengis.net/gml" xmlns:repr="http://maps.yandex.ru/representation/1.x" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maps.yandex.ru/schemas/ymaps/1.x/ymaps.xsd">
<ymaps:GeoObjectCollection>
   <gml:featureMembers>
      <ymaps:GeoObject>
         <gml:metaDataProperty>
            <ymaps:AnyMetaData>
               <price>
                  1000
               </price>  
            </ymaps:AnyMetaData>
         </gml:metaDataProperty>
         <gml:Point>
            <gml:pos>
               37.63 55.75
            </gml:pos>
         </gml:Point>
      </ymaps:GeoObject>

      <ymaps:GeoObject>
         <gml:metaDataProperty>
            <ymaps:AnyMetaData>
               <price>
                  2000
               </price>
            </ymaps:AnyMetaData> 
         </gml:metaDataProperty>
         <gml:Point>
            <gml:pos>
               37.60 55.05
           </gml:pos>
         </gml:Point>
      </ymaps:GeoObject> 
   </gml:featureMembers>
</ymaps:GeoObjectCollection>
</ymaps:ymaps>  

 

как можно сделать фильтрацию меток, допустим что бы показывались только те метки, у которых metaDataProperty.AnyMetaData.price больше 1500

2 комментария

YMapsML возвращает группу объектов, которая поддерживает метод filter

в место $[metaDataProperty.AnyMetaData.price] сделал $[name] и воспользовался методом filter:

ml = new YMaps.YMapsML('http://rentony.ru/templates/ja_purity/test.xml');
map.addOverlay(ml);
YMaps.Events.observe(ml, ml.Events.Load, function () {
obj = this.filter(function (obj) {
  return obj.name > 1500 
  });
}); 

я так понял появился массив из меток obj, вроде всё нормально, но как мне теперь отобразить ТОЛЬКО этот новый массив не пойму, простым addOverlay не получается =(