Клуб API Карт

Несколько вопросов новичка

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

1. Как улчше создавтаь обхекты на карте, если база объекто отображаемых на карте большая? Удобно ли пользоваться YMapsML для загрузке через XML всех объектов сразу?


2. Вопрос по YMapsML. Есть XML:

<ymaps>

<Representation>

<Style gml:id="styleGas">

<iconStyle>
<href>http://worlds.dev/images/icons/hamburger-32x32.png</href>
<size x="32" y="32"/>
<offset x="-32" y="-32"/>
</iconStyle>
</Style>
</Representation>

<GeoObjectCollection>

<gml:featureMembers>

<GeoObject id="1">
<gml:description>Тестовая точка</gml:description>
<gml:name>ТЕСТ</gml:name>

<gml:Point>
<gml:pos>30.600652 50.525586</gml:pos>
</gml:Point>
<style>#styleGas</style>
</GeoObject>
</gml:featureMembers>
</GeoObjectCollection>
</ymaps>


При переходе на эту току: map.setCenter(new YMaps.GeoPoint(x, y), 20, YMaps.MapType.MAP);

нужно открыть содержимое привязанное к ней. Как это сделать?

4 комментария
на первый вопрос думаю было бы удобней сделать так:

определяем кординаты видимой области карты http://api.yandex.ru/maps/jsapi/doc/ref/reference/geobounds.xml

определяем текущий зум, в зависимости от него и выводим ограниченное количество точек. Таким образом нам не нужно сразу все точки строить.

Остаётся вопрос как открыть этот GeoObject id="1"?
"Открыть" - подразумевается открыть балун у этого геообъекта?

Если да, то советую почитать этот пост.

YMaps.Events.observe(ml, ml.Events.Load, function () {
               this.filter(function (obj) {
                   if(obj.id == '1'){
                       obj.openBalloon();
                   }
               });
            });

так мы прослушиваем событие - загрузку. А если нам нужно при другом событии открыть? Т.е. при инициализации загрузили XML, потом в форме поиска пользователь вводит название объект, ему выдаём список найденных объектов на карте. При клике на название, карта перемещается без перестроения объектов.