Клуб API Карт

Прошу помощи с setBounds - показывает на максимальном отдалении карты (с серыми полями)

biohazard-87
2 февраля 2016, 16:12

Не давно начал изучать ya.maps и потребовалось динамически масштабировать карту в зависимости от удаленности объектов друг от друга - чтобы всегда на карте отображалить все объекты (были видны пользователю).

Использую следующий код:

        ymaps.ready(markicons);
        var oMap;
        function init() {
            var cData = data.MapCenter;
            var CenterPoint = [cData[0].longi, cData[0].lati]
            var ZoomV = data.ZoomValue; //попытка установить расчетное значение зума
            oMap = new ymaps.Map("map", {
                center: CenterPoint,
                zoom: ZoomV, //расчетное значение равно 8
                controls: ["typeSelector", "zoomControl"]
            });
        }
        function markicons() {
            init();
            var markers = [];
            var aData = data.poi;
            for (var i = 0, poiData; poiData = aData[i]; i++) {
                var marker =
                    new ymaps.GeoObject({
                        geometry: {
                            type: "Point",
                            coordinates: [poiData.longi, poiData.lati]
                        },
                        properties: {
                            iconContent: '',
                            hintContent: '<b>' + poiData.Info + '</b>',
                            id: poiData.id,
                            projectId: data.projectId,
                            anketaId: data.anketaId
                        }
                    },
                {
                    preset: 'islands#darkOrangeIcon',
                    draggable: false
                });
                oMap.geoObjects.add(marker);
            }
            oMap.setBounds(oMap.geoObjects.getBounds(), { checkZoomRange: true });
        }

По итогу, если выключить

oMap.setBounds(oMap.geoObjects.getBounds(), { checkZoomRange: true });

то отображается правильно, но расчетное значение зума не то, что нужно (пока не очень понял как пересчитать зум правильно и стоит ли это делать самому, или же лучше использовать готовое решение)

Если же включить - то вот такая картинка:

Что делаю не так?

1 комментарий
Подписаться на комментарии к посту
Дайте ссылку на страницу с этим кодом