@e1s

Как показать все метки на Яндекс карте?

Для загрузки меток используется следующий скрипт

function LoadObjects(myMap) {
            myMap.geoObjects.remove(loadingObjectManager);
            loadingObjectManager = new ymaps.LoadingObjectManager(url + '?bbox=%b',
            {
                clusterize: true,
                clusterHasBalloon: true,
                geoObjectOpenBalloonOnClick: true,
                clusterOpenBalloonOnClick: true
            });
            myMap.geoObjects.add(loadingObjectManager);
        };


Скрипт создания карты

ymaps.ready(function () {
        var myMap = new ymaps.Map("map", {
            center: [@centerYandexMap],
            zoom: 12,
            controls: ['fullscreenControl', 'geolocationControl', 'typeSelector', 'zoomControl']
        }, {
            avoidFractionalZoom: false
        });
        if (параметр == 'True') {
            LoadObjects(myMap);
            myMap.setBounds(myMap.geoObjects.getBounds());
        }
        $(window).resize(function () {
            myMap.container.fitToViewport();
        });
        });


Метки на карте отображаются, но видимая область не включает все точки. Как я понимаю проблема в myMap.setBounds(myMap.geoObjects.getBounds()), почему то myMap.geoObjects.getBounds() возвращает null, и само выражение myMap.setBounds(myMap.geoObjects.getBounds()) возвращается с ошибкой (под отладчиком так и не удалось добраться до того момента где происходит ошибка, но скрипт следующий за этим выражением не отрабатывает). Что я делаю не так?
  • Вопрос задан
  • 1182 просмотра
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Вы уверены, что ваш код выполняется последовательно, а не допустим данные грузятся чуть с запозданием? И не надо ли подождать их загрузки, прежде чем с ними работать.
LoadObjects(myMap);
myMap.setBounds(myMap.geoObjects.getBounds());
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы