2012-07-03 187 views
0

我已經開發了一個使用集羣標記示例使用來自數據庫的地理座標的地圖。我曾試圖彌補它放大全自動使用LatLngBounds();谷歌地圖縮放以適​​合

<script type="text/javascript"> 
    function initialize() { 
      var center = new google.maps.LatLng(9.4419, 9.1419); 

      var map = new google.maps.Map(document.getElementById('map'), { 
       zoom: 2, 
       center: center, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }); 

      var markers = []; 
      // create the infowindow out of the for boucle 
      var infoWindow = new google.maps.InfoWindow; 
      var bounds = new google.maps.LatLngBounds(); 

for (var i = 0; i < latlng.length; i++) { 

     var latLng = new google.maps.LatLng(latlng.lat,latlng.lng); 

    var html = 'test show in infowondow'; 

    var marker = new google.maps.Marker({ 
      position: latLng, 
      map: map, 
      icon:"/img/icon1.jpg", 
      title:"test title", 
     }); 
    // call to the function.... 
    bindInfoWindow(marker, map, infoWindow, html); 
    markers.push(marker); 

    }  

      var markerCluster = new MarkerClusterer(map, markers); 
      } 

    // create a function bindInfoWindow 

    function bindInfoWindow(marker, map, infoWindow, html) { 
      google.maps.event.addListener(marker, 'click', function() { 
      infoWindow.setContent(html); 
      infoWindow.open(map, marker); 
      }); 
    } 

      var markerCluster = new MarkerClusterer(map, markers); 
      } 
      google.maps.event.addDomListener(window, 'load', initialize); 
     </script> 
+2

如果你分開你的Javascript從PHP,或者是任何一種語言,你可能會發現你創建一個LatLngBounds對象,但是你永遠不會使用它。試着看看瀏覽器看到的一樣。 :-) – Marcelo

+0

我已經刪除了這裏的php代碼,你有建議嗎?請 – user1498595

+0

您測試了您發佈的Javascript嗎?它不可能沒有崩潰地運行。 latlng在哪裏定義?它是一個數組嗎?如果是,那麼它不具有稱爲latlng.lat和latlng.lng的屬性。瀏覽器是否不給你一些有用的錯誤信息? (使用適當的瀏覽器,而不是IE):-) – Marcelo

回答

1
  • 使全球範圍。
  • 再經過

var latLng = new google.maps.LatLng(latlng.lat,latlng.lng);

編輯:和馬塞洛指出更改爲:

var latLng = new google.maps.LatLng(latlng[i].lat,latlng[i].lng);

地址:

bounds.extend(latLng)

var markerCluster = new MarkerClusterer(map, markers);

附加:(?)

map.fitBounds(bounds);