如何设置Google Map缩放级别以显示所有标记?

如何设置缩放级别以显示Google地图上的所有标记?

在我的Google地图中,不同位置有不同的标记。 我想根据标记范围设置谷歌地图缩放级别(这意味着在Google地图视图中,我想查看所有标记)


你去那里:

<!DOCTYPE html>
<html> 
<head> 
   <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
   <title>Google Maps getBoundsZoomLevel Demo</title> 
   <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false" 
           type="text/javascript"></script> 
</head> 
<body onunload="GUnload()"> 

   <div id="map" style="width: 400px; height: 300px"></div> 

   <script type="text/javascript"> 

   if (GBrowserIsCompatible()) {
      var map = new GMap2(document.getElementById("map"));
      var markerBounds = new GLatLngBounds();

      for (var i = 0; i < 10; i++) {
         var randomPoint = new GLatLng( 39.00 + (Math.random() - 0.5) * 20, 
                                       -77.00 + (Math.random() - 0.5) * 20);

         map.addOverlay(new GMarker(randomPoint));
         markerBounds.extend(randomPoint);
      }

      map.setCenter(markerBounds.getCenter(), 
                    map.getBoundsZoomLevel(markerBounds));
   }
   </script> 
</body> 
</html>

我们在上面的例子中创建了10个随机点,然后将每个点传递给GLatLngBounds.extend() 。 最后我们用GMap2.getBoundsZoomLevel()获得正确的缩放级别。

Google地图getBoundsZoomLevel演示


如果您使用API​​版本3,则可以替换

map.setCenter(markerBounds.getCenter(), map.getBoundsZoomLevel(markerBounds));

map.fitBounds(markerBounds).

设置Google Map缩放级别以显示所有标记?

Maps API v3

  • 得到标记
  • 获得标记的边界
  • 通过将它放置在标记边界上来设置地图上的中心

  • var markers = [markerObj1, markerObj2, markerObj3];
    
    var newBoundary = new google.maps.LatLngBounds();
    
    for(index in markers){
      var position = markers[index].position;
      newBoundary.extend(position);
    }
    
    map.fitBounds(newBoundary);
    

    上面的代码将自动居中放大地图,以便所有标记都可见。

    链接地址: http://www.djcxy.com/p/81589.html

    上一篇: How to set the Google Map zoom level to show all the markers?

    下一篇: How to get Google Maps API to set the correct zoom level for a country?