我在这里有一个漂亮的样板Google Maps代码,当页面加载时,它会显示地图和标记,但Zoom级别不是14。实际上,我可以将脚本的Zoom设置为任何值,但不会。没关系。无论如何,地图都保持相同的默认缩放比例。
function initMap() {
var bangalore = { lat: 25.94255500, lng: -81.72122700 };
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 14,
center: bangalore
});
var locations = [
@foreach ($results as $result)
['{!! $result->CleanStreet !!}', {!! $result->GoogleLat !!}, {!! $result->GoogleLong !!} ],
@endforeach
];
var infowindow = new google.maps.InfoWindow();
var marker, i;
var bounds = new google.maps.LatLngBounds();
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
bounds.extend(marker.getPosition());
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
map.fitBounds(bounds);
}
答案 0 :(得分:1)
您正在呼叫map.fitBounds(bound)
,它将缩放地图以适合所包含的标记,并且不会通过更改地图的初始缩放值来实现(实际上,您可以从中删除中心/缩放值地图构造函数,并且只要您具有 some 标记,就会对其进行初始化以显示这些标记。)
要么删除该调用并设置初始中心并放大map
构造函数,要么在调用zoom_changed
后等待map.fitBounds(bounds);
事件触发并进行设置。< / p>