Есть объект GeoObjectCollection и GeoCollectionBounds. Можно ли наравне с определением центра коллекции, определять необходимый масштаб, чтобы на карту попали все точки?
Спасибо. Но у меня возникает еще одна проблема. Точки на карте расставляются, но центрирования все равно не происходит (хотя, если вбивать JS-код вручную, то все хорошо работает), карта появляется где-то на Атлантическом океане. Код такой:
$(document).ready(function(){ var data = new Array(); $('a.adrs').each(function(){ data.push($(this).find('strong').html()); }); var map = new YMaps.Map(YMaps.jQuery('#yandexMap')[0]); var geocol = new YMaps.GeoObjectCollection(); var geobounds = new YMaps.GeoCollectionBounds(); for (var i=0; i var geoobj = new YMaps.Geocoder(data[i]); YMaps.Events.observe(geoobj, geoobj.Events.Load, function(){ if (this.found) { var point = this.get(0).getGeoPoint(); geocol.add(this); geobounds.add(point); } }); } map.addOverlay(geocol);
map.enableScrollZoom();
var miniMap = new YMaps.MiniMap(); map.addControl(miniMap);
var zoom = new YMaps.Zoom(); map.addControl(zoom);
var typeControl = new YMaps.TypeControl(); map.addControl(typeControl);
var scaleLine = new YMaps.ScaleLine(); map.addControl(scaleLine);
недавно уже обсуждалось похожая задача. Проблема в том что геокодирование - процесс асинхронный. и когда Вы делаете map.setBounds(geobounds); там еще нет точек
И почему возникает проблема с асинхронностью, если добавление точки в коллекцию geobounds происходит по событию Events.Load? Ведь объект в geocol добавляется нормально.