自动调整缩放以适应google map中的所有标记

问题描述 投票:40回答:3

使用最新版本的Google地图。如何使用经度和纬度添加标记,以及如何使用JavaScript自动调整地图的缩放级别以包括所有标记?

javascript google-maps google-maps-api-3 google-maps-markers
3个回答
80
投票

Google Maps API v3提供了一个LatLngBounds对象,您可以向其中添加多个LatLng对象。然后可以将其传递给Map.fitBounds()函数,如下所述:

部分示例

Zoom-to-Fit All Markers on Google Map v3

24
投票

您通过为每个纬度/经度对实例化var latlng = [ new google.maps.LatLng(1.23, 4.56), new google.maps.LatLng(7.89, 1.01), // ... ]; var latlngbounds = new google.maps.LatLngBounds(); for (var i = 0; i < latlng.length; i++) { latlngbounds.extend(latlng[i]); } map.fitBounds(latlngbounds); 对象,将标记添加到Google地图中:

marker

标记构造器上的var marker = new google.maps.Marker({ position: currentLatLng, map: map, title:"Title!" }); 选项会将新的市场对象与您的地图相关联。

要缩放地图以包括新的标记,请在map对象上使用fitBounds方法。 fitBounds将map对象作为参数。该对象具有方便的extend方法,该方法将调整范围以包括新的纬度/经度。因此,您只需要旋转所有点,并在单个latLngBounds对象上调用extend。这将扩大范围,包括所有标记。完成此操作后,将该对象传递到latLngBounds上的fitBounds方法中,它将缩放以显示所有新标记。


0
投票

以下内容帮了我大忙

map

在setZoom()方法中设置所需的缩放比例。值越大,显示的位置细节越宽,值越小,它会限制和缩小位置细节]

© www.soinside.com 2019 - 2024. All rights reserved.