Клуб API Карт

Не определяется автозум

bor4eg
18 мая 2009, 20:38

Привет!


Добавляю на карту маркеры с помощью GeoCollectionBounds(), чтобы автозум и область карты автоматически подстроились.

Если маркеров больше одного, то автозум срабатывает прекрасно.


Но если, таким образом добавить только один маркер и вызвать setBounds(area), то автозум устанавливается на максимум и вместо карты отображаются надписи 'для данного участка нет данных'.


Вопрос: как можно сделать так, чтобы автозум срабатывал и при одном маркере. Заранее спасибо )

3 комментария
Подписаться на комментарии к посту
Дайте ссылку на пример, пожалуйста.
ссылки пока нет, вот код:
var map = new YMaps.Map(document.getElementById("map")); map.addControl(new YMaps.TypeControl());     map.addControl(new YMaps.Zoom());     map.addControl(new YMaps.ScaleLine());     map.enableScrollZoom();      var area = new YMaps.GeoCollectionBounds(); var counter = 0; var s = new YMaps.Style();     s.iconStyle = new YMaps.IconStyle("example#customPointIcon");     s.iconStyle.offset = new YMaps.Point(-22, -46);     s.iconStyle.href = "http://info.maps.yandex.net/api/i/steelblue/dot.png";     s.iconStyle.size = new YMaps.Point(26, 46);     s.iconStyle.shadow = new YMaps.IconShadowStyle();     s.iconStyle.shadow.offset = new YMaps.Point(0, -25);     s.iconStyle.shadow.href = "http://info.maps.yandex.net/api/i/dot_shadow.png";     s.iconStyle.shadow.size = new YMaps.Point(25, 23);     YMaps.Styles.add("example#customPoint", s);                              var t = new YMaps.Template();    t.text = "onStyle.size.y];width:$[style.iconStyle.size.x];\" src=\"$[style.iconStyle.href]\"\ />$[name|0]";     YMaps.Templates.add("example#customPointIcon", t);             
function CreateMarker (point, index, href) { var marker = new YMaps.Placemark(point, {hasBalloon: false, style: "example#customPoint"}); marker.name = index; area.add(point); YMaps.Events.observe(marker, marker.Events.Click, function () {          window.open(href); }); map.addOverlay(marker); counter++; }
CreateMarker(new YMaps.GeoPoint(37.12675094604492, 45.05618250671367), 3, 'place/4');;
map.setBounds(area);


Если  маркеров больше чем один, то все ок. Но вот, если один, то никак. Мне уже подсказали, что при одном маркере, АПИ не может определить масштаб, так что приходится их считать. И если он один, то вызывать setCenter
Да, и вот еще заметил, если два маркера находятся на карте близко, то автозум некорректно срабатывает. ((
new YMaps.GeoPoint(37.130441665649414, 45.058789619859695)
new YMaps.GeoPoint(37.129248, 45.055174)