2012-07-03 147 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);