Я использую "управление" Javascript v7 Bing Maps ( Я не знаю, почему это называется "контроль"...). Я звоню Microsoft.Maps.Map.setView({bounds: bounds})
, и это не работает, как я ожидал или хотел.
У меня есть набор полигонов с точками, которые охватывают 180-й меридиан. Примером может служить граница островов Новой Зеландии - часть из них находится к западу от 180-го меридиана, часть (острова Чатем) - к востоку.
Когда я создаю многоугольник с этими границами и вызываю setView()
, карта масштабируется waaaaaay.
Почему? и как этого избежать?
На этой страницепредставлена демонстрация проблемы.
Вот код.
var map, MM = Microsoft.Maps;
function showMap(m) {
var options = {
mapTypeId: MM.MapTypeId.road // aerial,
// center will be recalculated
// zoom will be recalculated
},
map1 = new MM.Map(m, options);
return map1;
}
function doubleclickCallback(e) {
e.handled = true;
var bounds = map.getBounds();
map.setView({ bounds: bounds });
}
function init() {
var mapDiv = document.getElementById("map1");
map = showMap(mapDiv);
MM.Events.addHandler(map, "dblclick", doubleclickCallback);
}
Если дважды щелкнуть карту, на которой не отображается 180-й меридиан, ничего не произойдет. Если дважды щелкнуть, когда на карте отображается 180-й меридиан, карта сбрасывается до уровня масштабирования 1.