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_) })
myMap.setBounds(myMap.geoObjects.getBounds()); //Установить границы карты по объектам myMap.setZoom(myMap.getZoom()-0.4); //Чуть-чуть уменьшить зум для красоты
Зум меняю, так как первая строчка устанавливает границы точно по крайним объектам, и сами объекты почти не видны.
Чтоб не менять зум, задайте отступы внутри карты. Тогда сами объекты не будут впритык к краям. 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 (Т.е. смещается относительно первоначально установленных координат на карте и относительно выбранного города). После того, как карта отцентрировалась на нужном месте - точка тоже устанавливается в нужную координату. При установке последующих точек все происходит корректно - маркер центрируется вместе с городом