Клуб API Карт

Установка центра карты, чтобы поместились все точки

borzab
11 мая 2016, 20:15

Здравствуйте!

Каким образом можно установить центр и зум для карты, чтобы поместились все точки, при этом не задавая изначально центр и зум для карты?

7 комментариев
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/util.bounds-docpage/#fromPoints
var myMap = new ymaps.Map('_id_', {
bounds: ymaps.util.bounds.fromPoints(_points_coordinates_array_)
})
dimik,
Большое спасибо! Получилось!
myMap.setBounds(myMap.geoObjects.getBounds()); //Установить границы карты по объектам
myMap.setZoom(myMap.getZoom()-0.4); //Чуть-чуть уменьшить зум для красоты


Зум меняю, так как первая строчка устанавливает границы точно по крайним объектам, и сами объекты почти не видны.
ee84,
Спасибо большое
ee84,


Чтоб не менять зум, задайте отступы внутри карты. Тогда сами объекты не будут впритык к краям.
myMap.margin.setDefaultMargin(50);
Подробнее: https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/map.margin.Manager-docpage/#method_detail__setDefaultMargin-param-margin
Подскажите,  пожалуйста, в чем м.б. проблема. Написал код, чтобы при клике по населенному пункту карта центрировалась на городе (не баунд)


myMap.events.add('click', function (e) {
   // Получение координат щелчка
   var coords = e.get('coords');
   //Получаем объекты "нас.пункты"
   var myReverseGeocoder = ymaps.geocode(coords, {kind:'locality' });
   myReverseGeocoder.then(
        function (res) {

        // Установим центр карты на ближайшем городе
        myMap.setCenter(res.geoObjects.get(0).geometry.getCoordinates(), myMap.action.getCurrentState().zoom, { duration: 1000 });
        // Добавим точку на карту
        myMap.geoObjects.add(res.geoObjects.get(0));
},
function (err) {
alert('Ошибка');
}
);
});

В результате при первом клике по карте ставится точка на ближайшем городе, далее идет центрирование карты, город "уезжает" в центр карты, НО установленная точка остается на месте относительно Layout (Т.е. смещается относительно первоначально установленных координат на карте и относительно выбранного города). После того, как карта отцентрировалась на нужном месте - точка тоже устанавливается в нужную координату.
При установке последующих точек все происходит корректно - маркер центрируется вместе с городом
reNNNaD,
Здравствуйте, технические вопросы лучше здавать на Stack Overflow: https://ru.stackoverflow.com/questions/tagged/yandex-maps-api