Клуб API Карт

Вопрос по отображению коллекции объектов на карте

napositive
25 июня 2012, 23:16

Есть коллекция объектов и карта

Как отцентрировать карту так чтобы она отображала все объекты коллекции?

 

Спасибо

21 комментарий
Подписаться на комментарии к посту

я использовал это решение.

А примера нет?

там есть @example

Я правильно понял что нужно это доп файл подключать и стандартного решения нет?

А если просто с объектами?

На карту добавил объектов, переместить карту чтобы все влезло?

Я извиняюсь за возможно глупые вопросы, просто примеров по API20 мало...

как бы можно все это самому написать, если хочется,

ну или ничего не писать и перемещать карту руками - тоже вариант.

 

я вот написал, и теперь подключаю файл

Пытался задействовать ваш скрипт, в консоле возникают ошибки:
Cannot call method 'augment' of undefined  - collectionWithBounds.js:59
Cannot read property 'constructor' of undefined - collectionWithBounds.js:41

Вот код моего примера:

ymaps.ready(init);

        function init () {

            // Создание экземпляра карты и его привязка к контейнеру с

            // заданным id ("map")

            var myMap = new ymaps.Map('map', {

                    // При инициализации карты, обязательно нужно указать

                    // ее центр и коэффициент масштабирования

                    center: [55.76, 37.64], // Москва

                    zoom: 10

                });
               
                var collection = new GeoCollectionBounds(),
         placemark1 = new ymaps.Placemark([55.7, 37.5]),
        placemark2 = new ymaps.Placemark([55.8, 37.6]),
          placemark3 = new ymaps.Placemark([55.5, 37.7]),
          polygon = new ymaps.Polygon([[[55,37], [58,36], [54,45], [50, 30]]]);

      collection
          .add(placemark1)
          .add(placemark2)
         .add(placemark3)
          .add(polygon);

     myMap.geoObjects.add(collection);
      // Show collection bounds on the map.
      myMap.geoObjects.add(collection.getBoundsRect());
      // Set center and zoom using collection bounds.
     myMap.setBounds(collection.getBounds());

        }

как вы подключаете АПИ?

можете дать ссылку на страницу?

Сергей, посмотрю вечером и отпишу

Как там с моим вопросом?

Сергей, я не забыл
там в файле collectionWithBounds.js вызываются методы АПИ

и подключать его нужно после того как случится ymaps.ready

т.е. как то так

 

ymaps.ready(init);function init() {    // var center = [55.7, 37.5],    var center = [90, 11],                                                                                                                                                                                 map = new ymaps.Map('YMapsID', {        center: center,        zoom: 9,        type: 'yandex#map',        behaviors: ['scrollZoom']    });    $.getScript('collectionWithBounds.js', function () {        console.log('collection class loaded');        var collection = new GeoCollectionBounds(),            placemark1 = new ymaps.Placemark([55.7, 37.5]),            placemark2 = new ymaps.Placemark([55.8, 37.6]),            placemark3 = new ymaps.Placemark([55.5, 37.7]),            polygon = new ymaps.Polygon([[[55,37], [58,36], [54,45], [50, 30]]]);        collection            .add(placemark1)            .add(placemark2)            .add(placemark3)            .add(polygon);        map.geoObjects.add(collection);        // Show collection bounds on the map.        map.geoObjects.add(collection.getBoundsRect());        // Set center and zoom using collection bounds.        map.setBounds(collection.getBounds());    });}

Вообще разработчики АПИ обещали в ближайших релизах что геоколлекции будут уметь считать bounds своих своего содержимого из коробки.

Так что может тебе стоит подождать?

Попробовал новый вариант http://webmap-blog.ru/examples/ymap-api-v2/ymap_api2_bounds.html

Ошибка: Uncaught TypeError: Cannot call method 'getZoom' of undefined

попробуй в урле подключения АПИ

вместо 2.0 указать 2.0.7

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

 мне надо это поправить

Вот это интересно!

А как часто релизы выходят (когда ближайший)?

Релизы анонсируются в клубе.

конкретной даты никто не назовет

Все тоже. Будем ждать когда в API добавят

Конечно, всё можно сделать самим. Но ведь для того Яндекс.Карты и сделаны, чтобы большее количество людей с наименьшими затратами могли использовать замечательные возможности. Возможность нахождения границ и масштабирование карты таким образом, чтобы вмещались все объекты, как это было в предыдущей версии, очень востребована

Доброе утро

Эта возможность уже месяца 2 как есть