2015-02-06 57 views
-1

我正在使用Google API v3,但此参数'zoom:10'不起作用。总是我打电话给谷歌API,缩放是最大的,我必须点击“ - ”大约5次才能获得所需的缩放。我试图把zoom:1和zoom:100但没有任何反应。也许这个参数被覆盖,但我看不到在哪里。Google Map API v3 - 缩放参数不起作用

这里是我的代码:

function viewOnMap(campus_name, lat, long, address1, address2){ 
    var locations = [ [ campus_name, lat, long, 1 ] ]; 

    var map = new google.maps.Map(document.getElementById('google_map'), { 
    zoom : 10, 
    center : new google.maps.LatLng(lat, long), //lat long site 
    mapTypeId : google.maps.MapTypeId.ROADMAP 
    }); 
    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(lat, 
         long), 
         map : map, 
         icon:'images/pin.png' 
      }); 
    var pos = new google.maps.LatLng(lat, long); 
    bounds.extend(pos); 
    google.maps.event.addListener(marker, 'click', (function(marker, i) { 
     return function() { 
       var content = '<div id="content">'+ 
       '<div id="siteNotice">Site name: '+ (campus_name) + 
       '</div>'+ 
       '<div id="bodyContent">Address: '+ (address1) + 
       '</div>'+ 
       '<div id="bodyContent1">'+ (address2) + 
       '</div>'+ 
       '</div>'; 
      } 
      infowindow.setContent(content); 
      infowindow.open(map, marker); 
     }; 
    })(marker, i)); 
    } 
    map.fitBounds(bounds);  
} 

谢谢!

+1

你的标记位置是什么?你是否在某处调用map.fitBounds(未显示)?寻求调试的问题有助于解决问题(“为什么这个代码不能工作?”)必须使用最短的代码来重现问题本身。请参阅:[如何创建最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。 – geocodezip 2015-02-06 19:18:18

+0

我没有看到[使用你的代码](http://jsfiddle.net/rh2xh2o2/)的问题,我确实必须修复jsfiddle“JSHint”函数(jslint clone)所识别的一些语法错误,尽管显示地图, – geocodezip 2015-02-06 21:03:41

+0

map.fitBounds(bounds); (:此代码在那里,我忘了放在这里。 @geocodezip我会尝试使用您的代码,谢谢。 – 2015-02-08 22:48:40

回答

0

对google.maps.Map.fitBounds的调用将覆盖MapOptions中的固定缩放比例。

如果您只添加一个位置到google.maps.LatLngBounds,然后使用google.maps.Map.fitBounds,它将始终放大到最大可能的缩放比例。

如果您只有一个位置,请勿使用google.maps.Map.fitBounds。

+0

工作!谢谢! – 2015-02-09 17:18:57

0

你试过了吗? :

map.setZoom(10); 

我甚至会在设置标记后尝试设置它。

事实上,如果你想看看它是否工作,用chrome调试你的代码,在地图渲染完成之后设置一个断点,并在本地窗口中运行该代码。

+0

是的。我已经尝试过了。): – 2015-02-06 19:18:46

+0

你在为每个新标记位置扩展的边界变量做什么?就像@geocodezip说的,你以后会把这个传给fitBounds调用吗?你可以给我们更多的代码吗? – mindparse 2015-02-06 20:56:55

+0

不知道为什么downvote没有解释。这就是你如何设置缩放。 – 2015-02-06 21:12:37

相关问题