Клуб API Карт

Ошибка при вызове метода .getBounds()

Пост в архиве.

Здравствуйте, вывожу карту и одну коллекцию, хочу отмасштабировать ее так, чтобы было видно все объекты в коллекции. 

В общем-то банальная задача, но получаю ошибку при вызове метода:

TypeError: myMap.geoObjects.getBounds is not a function

 

Вот вся моя функция:

 

        function init_map_yndx() {

            var myMap = new ymaps.Map(document.getElementById('mapArea'), {

               center: [city_latitude, city_longitude],

               zoom: 4,

               behaviors: ['default', 'scrollZoom']

            });

            var city_collection = new ymaps.GeoObjectCollection();

            for (var i = 0; i<city_coords.length; i++) {

                var city_obj = city_names[i];

                city_collection.add(new ymaps.Placemark(city_coords[i], {

                     hintContent: city_obj[0],

                     city_url: city_obj[1]

                }, {

                     hasBalloon: false,

                     iconImageHref: '/static/assets/icons/dot.png',

                     iconImageSize: [21, 19]

                }));

            }

            myMap.geoObjects.add(city_collection);

            city_collection.events.add('click', function(e) {

                window.location.href = e.get('target').properties.get('city_url');

            });

            console.log(myMap.getBounds());

            console.log(myMap.geoObjects.getBounds());

            console.log(city_collection.getBounds());

            //myMap.setBounds(city_collection.getBounds());

        }

 

console.log(myMap.getBounds()); отрабатывает нормально, а следующие дают ошибку (

6 комментариев
Алексей Yarrr!
28 января 2016, 03:34

У меня все отрабатывают. http://jsfiddle.net/qfox/8fXqu/

Видимо, дело в ваших данных, которые вы загоняете метками.

Большое Вам спасибо! Проблему решил, но дело было не в данных, а в подключении скрипотв API. Ваш вариант:

мой:



Что интересно, взял я это тут )  

Алексей Yarrr!
28 января 2016, 03:34

;-) Ну и хорошо. package.full подключает всё, и весит больше, лучше перечислить какие пакеты вам действительно нужны.

Еще для отладки удобно использовать специальный режим http://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU&mode=debug

Оказалось еще интереснее, проблема в верси 2.0-stalbe. На 2.0 и стандартном пакете работает )
Надо бы как-то разработчикам API сообщить что ли.. или они читают тут? 

Алексей Yarrr!
28 января 2016, 03:34

Читают. И они в курсе, я думаю.

2.0-stable смотрит на 2.0.10, вроде.

2.0 на последнюю в версии. 2.0.15, вроде со 2 октября будет 2.0.17

в где-то между на 2.0.12 и 14 были исправлены разные ошибки и недоработки в архитектуре, возможно как раз на них вы и наткнулись.

Пока стейбл не обновится — лучше использовать строго 2.0.какую-то, на которой у вас все работает.

Кстати, можете для себя уточнить, если интересно, попереключая версии, как оно работает на промежуточных. Например, так http://api-maps.yandex.ru/2.0.14/?load=package.standard&lang=ru-RU

Еще можно ченж логи почитать). Опять же для общего развития.

Ченджлоги тут.