Клуб API Карт

Как задать точку центрирования ч.з. YMapsML

kostya-vlasov
8 апреля 2009, 22:51

Подскажите пожалуйста как задать точку центрирования ч.з. YMapsML?

На данный момент у меня сделано вот так:

	ml =new YMaps.YMapsML( 'http://..../xmlmap/31:32:30:29:26' );
map.setCenter(new YMaps.GeoPoint(60.611201,56.836815 ), 11);
map.addOverlay(ml);
При этом получается, что карта при открытии страницы центрируется на заданной статически точке,
а затем карта перерисовывается еще раз, но уже на нужных координатах заданных в xml:
<View>
<mapType>MAP</mapType>

<gml:boundedBy>

<gml:Envelope>
<gml:lowerCorner>60.5521057 56.7848391</gml:lowerCorner>
<gml:upperCorner>60.6726673 56.8912299</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
</View>

Получается немножго тормозно. можно в map.setCenter передать какуюлибо точку из YMaps.YMapsML
чтобы карта не позиционировалась дважды?
Или обойтись без вызова setCenter?
4 комментария
Подписаться на комментарии к посту
// отключи автоприменение view : var ml = new YMapsML(url, {viewAutoApply: false}) // установи обработчик загрузки: YMaps.Events.observe(ml.Events.Load, function () { if (ml.view.boundedBy) { // установи карте требуемые координаты map.setBounds(ml.view.boundedBy); } else { // на случай если в документе не будет координат map.setCenter(new YMaps.GeoPoint(60.611201,56.836815 ), 11) } map.addOverlay(ml); })
В таком случае, какбудто карта не инициализируется - просто серая область, без ошибок.
Спасибо разобрался, надобыло YMaps.Events.observe(ml, ml.Events.Load, function () {
да конечно, нужно было указать на каком объекте слушать событие. код написал без проверки, вот и не досмотрел :(