小编WX8*_*_88的帖子

谷歌地图map.fitBounds()和bounds.extend()没有按预期工作.

我在下面有一段代码使用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)

javascript google-maps bounds google-maps-api-3 fitbounds

2
推荐指数
1
解决办法
2万
查看次数