У меня есть куча маркеров, и я хочу показать только область, содержащую их. Я нашел длинный список похожих вопросов (некоторые см. внизу поста), но ни одно из решений не работает для меня. LatLngBounds построен правильно, но когда я вызываю fitBounds, результат будет следующим: Вместо: Может ли кто-нибудь обнаружить очевидную ошибку в моем коде?
var opt = {
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map"),opt);
var box = new google.maps.LatLngBounds();
for(var i=0;i
Некоторые сообщения, которые я читал и пробовал (список не является исчерпывающим):
: это действительно происходит если (как я делаю в своем приложении) карта сначала скрыта, а показывается только потом. Я скрываю это так:
$('#карта').Спрятать();
и покажите это:
$('#map').show(function(){
//this is necessary because otherwise
//the map will show up in the upper left corner
//until a window resize takes place
google.maps.event.trigger(map, 'resize');
});
Любая подсказка, почему это происходит и как это предотвратить (кроме инициализации карты при первом отображении)?
Кстати, если я устанавливаю масштаб и центр при объявлении объекта карты (т. е. не использую fitBounds()
), то карта будет отображаться правильно, даже после скрытия/отображения.
Однако я не могу установить масштаб и центр, потому что список точек извлекается из другого места, и я заранее не знаю, где они находятся.