如何设置缩放级别以显示Google地图上的所有标记?如何设置Google Map缩放级别以显示所有标记?
在我的Google地图中,不同位置有不同的标记。我想基于标记的范围内设置谷歌地图的缩放级别(在谷歌地图的视图手段,我希望看到所有标记)
如何设置缩放级别以显示Google地图上的所有标记?如何设置Google Map缩放级别以显示所有标记?
在我的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&v=2&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()
获得正确的缩放级别。
可以使用GLatLngBounds对象,表示在地图上的矩形的extend
方法。
var bounds = new GLatLngBounds();
环周围所有的points在地图上,延长了GLatLngBounds的界限对象的每一个。
bounds.extend(myPoint);
最后,你可以用你的边界对象设置地图的中心和缩放(其中map
是地图对象)
map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
如果您使用的API版本3,你可以替换
map.setCenter(markerBounds.getCenter(), map.getBoundsZoomLevel(markerBounds));
与
map.fitBounds(markerBounds).
设置Google Map缩放级别以显示所有标记?
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);
上面的代码将自动居中放大地图,以便所有标记都可见。
这只适用于v2 – Jaseem 2012-12-15 22:23:08