2012-03-19 54 views
15

我们有远处的搜索过滤器。它具有地图视口,允许设置基本标记和输入文本框,允许以公里为单位输入距离。如何Google地图圈子适合地图

然后在视口中我们使用circle在地图上显示此距离。

问题,我如何缩放地图以适应圆?

回答

38

A google.maps.Circle有一个getBounds()方法,它返回圆的LatLngBounds。在初始化函数结束

map.fitBounds(circle.getBounds()); 

...:如果使用的是圆形,您可以使用此范围作为论据google.maps.Map.fitBounds()

,你可以做到这一点。

http://jsfiddle.net/doktormolle/MHLjy/

+0

这个简单。谢谢。我没有使用map.fitBounds(),但没有注意到circule具有getBounds。非常好:) – 2012-03-19 11:55:56

+0

非常好,谢谢 – 2017-04-02 20:37:12

15

对于多圈使用联盟代替延长

var bounds = new google.maps.LatLngBounds(); 

$.each(circles, function(index, circle){ 
    bounds.union(circle.getBounds()); 
}); 

map.fitBounds(bounds); 
+1

不错。我已经使用它来确保*至少包含搜索半径圆,然后使用latlngBounds.extend(marker.getPosition())扩展任何标记的边界 – Jon 2016-08-05 16:26:24