我在下面有一段代码使用bounds.extend()和map.fitBounds()来调整地图大小以容纳所有标记.我希望地图可以将start_point作为中心,并缩小到适当的水平,以便看到每个标记.
但是,它最终放大到start_point.我试图(commen)每次都没有在geocoder.geocode回调函数中调用bounds.extend(),而是将标记添加到数组中并在一个单独的循环中调用bounds.extend(),这也是无效的.
我仔细检查了标记是否成功创建,如果我手动缩小,我可以看到它们.
mark_pins()被调用为ajax成功回调函数,我在这里没有包含它.
我想念什么吗?
var map;
var start_point = new google.maps.LatLng(37.519002, -122.131);
var bounds = new google.maps.LatLngBounds();
function initialize() {
var map_canvas = document.getElementById('map_canvas');
var map_options = {
center: start_point,
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(map_canvas, map_options);
}
google.maps.event.addDomListener(window, 'load', initialize);
function mark_pins(trucks){
var geocoder = new google.maps.Geocoder();
var markersArray = [];
for (i = 0; i < trucks.length; i++) {
// iterate each truck address
geocoder.geocode( { 'address' : trucks[i]['address']}, function(results, status) {
if (status …Run Code Online (Sandbox Code Playgroud)