Клуб API Карт

xml и центрирование

Пост в архиве.
nir0-reg
11 сентября 2011, 15:06

как в этом примере http://api.yandex.ru/maps/ymapsml/examples/simpleobject.html добавить функционал центрирования по метке, либо, если метка не одна, позиционировать, и, может быть, увеличить масштаб, чтобы все метки были видны?

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

я в firebug разобрал объект ml, но не нашел в нем координат :(

пока дошел до этого:


    YMaps.Events.observe(ml, ml.Events.Load, function () {
      if (ml.get(0)._objects.length == 1) {
        map.setCenter(ml.get(0)._objects[0].getCoordPoint()) ;
      } else {
        map.setBounds( ... ) ;
      }
    }) ;

не могу совладать с YMaps.GeoCollectionBounds

решил:

    YMaps.Events.observe(ml, ml.Events.Load, function () {
      if (ml.get(0)._objects.length == 1) {
        map.setCenter(ml.get(0)._objects[0].getCoordPoint()) ;
      } else {
        var points = []
        ml.get(0).forEach(function (obj) {
          points.push(obj.getGeoPoint()) ;
        }) ;
        map.setBounds(new YMaps.GeoCollectionBounds(points)) ;
      }
    }) ;

проблема заключалась в отсутствии new

1. Лучше наверное посчитать эту область на сервере

и положить в ее в YMapsML,

тогда центрировать можно не перебирая на клиенте все точки

2. Лучше не использовать педальные св-ва (_objects) а еще раз вызвать get(0)