我有一个问题,我不认为fitBounds调用正确设置缩放级别。我设法在这里重现我的测试用例http://tom.haddons.net/map.html - 基本上四个外部点是我设置的边界,如果你加载页面,然后放大一个级别,它们仍然可见。那么为什么谷歌地图没有设置缩放级别呢?
谢谢,汤姆
答案 0 :(得分:0)
我设法通过以下方式解决这个问题:
var minlatminlong = new google.maps.LatLng({{ min_latitude }}, {{ min_longitude }});
var minlatmaxlong = new google.maps.LatLng({{ min_latitude }}, {{ max_longitude }});
var maxlatminlong = new google.maps.LatLng({{ max_latitude }}, {{ min_longitude }});
var maxlatmaxlong = new google.maps.LatLng({{ max_latitude }}, {{ max_longitude }});
zoomChangeBoundsListener = google.maps.event.addListener(map, 'bounds_changed', function(){
var bounds = this.getBounds();
if ((bounds.getSouthWest().lng() > {{ min_longitude }}) || (bounds.getNorthEast().lng() < {{ max_longitude }}) || (bounds.getSouthWest().lat() > {{ min_latitude }}) || (bounds.getNorthEast().lat() < {{ max_latitude }})) {
this.setZoom(this.getZoom() - 1);
} else {
google.maps.event.removeListener(zoomChangeBoundsListener);
}
});
请注意,“{{”和“}}”中包含的任何内容都是我传递给html模板的变量。