有没有人遇到设置谷歌地图缩放级别的方式,以便窗口相隔一定距离?
答案 0 :(得分:2)
使用google.maps.geometry.spherical.computeDistanceBetween()
和map.getBounds()
(请参阅doku)在当前缩放级别中测量地图的位置。
如果需要时测得的距离较宽,请将其除以2。如果它更小,则乘以2。
执行此操作,直到计算出的宽度小于目标宽度,并计算您必须乘以或除以的频率。
将您计算的数字添加/接收到当前缩放值,以获得目标缩放值。
注意:您无法使地图适合精确的宽度,因为您只能使用固定的缩放级别,因此这只是一个近似值。
答案 1 :(得分:0)
我通过创建一个具有给定距离的圆圈并使用它来获得边界来实现类似的功能。由于API添加了一些填充,因此地图的宽度与圆圈的宽度并不完全相同。
//Accuracy in metres
var accuracy = 50;
/* Create a circle but don't set the 'map' variable as we don't need to see circle on the map */
var circle = new google.maps.Circle({
center: map.getCenter(),
radius: accuracy
});
//Get the new bounds from the circle
var bounds = circle.getBounds();
/* Fit the map to the size of the circle. Will be slightly bigger than the circle as the API adds a little padding */
map.fitBounds(bounds);