Не давно начал изучать 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 });
то отображается правильно, но расчетное значение зума не то, что нужно (пока не очень понял как пересчитать зум правильно и стоит ли это делать самому, или же лучше использовать готовое решение)
Если же включить - то вот такая картинка:
Что делаю не так?