我正在尝试使用封闭容器中的路线将 Yandex 地图中构建的路线居中。route 方法有一个选项mapStateAutoApply: true,但它在隐藏容器中不起作用。几何route.geometry 返回null,因此也不采用setBound 。
还有哪些其他方法可以将地图集中在构建的路线上?哦,是的,如果地图上还有其他元素,还有myMap.setBounds(myMap.geoObjects.getBounds()); 也不适合,您需要将所需路线居中。
附上示例:https ://codepen.io/corsik/pen/LYpMeJP
ymaps.ready(init);
function init() {
var newMap = new ymaps.Map(
"map",
{
center: [55.745508, 37.435225],
zoom: 13
},
{
searchControlProvider: "yandex#search"
}
);
let start = [55.75660176930596, 37.630121031491065],
stop = [55.75887773480828, 37.626880923001075],
myRoute = false;
ymaps
.route([start, stop], {
mapStateAutoApply: true
})
.then(function (route) {
route.getPaths().options.set({
strokeColor: "0000ffff",
opacity: 0.9
});
myRoute = route;
// добавляем маршрут на карту
newMap.geoObjects.add(route);
});
let container = $("#map");
$("#show").click(() => {
container.show();
newMap.container.fitToViewport();
newMap.geoObjects.each(function (geoObject) {
console.log(geoObject);
});
});
$("#hide").click(() => {
container.hide();
});
}