Javascript 使谷歌地图跨越一定距离(米)
有没有人遇到过这样一种方法:设置谷歌地图的缩放级别,使窗口保持一定的距离Javascript 使谷歌地图跨越一定距离(米),javascript,jquery,google-maps-api-3,Javascript,Jquery,Google Maps Api 3,有没有人遇到过这样一种方法:设置谷歌地图的缩放级别,使窗口保持一定的距离 使用google.maps.geometry.spherical.ComputedIstanceBeween()和map.getBounds()(参见doku)在当前zoomlevel中测量地图的宽度 如果需要时测量的距离更宽,则将其除以二。如果它小,乘以2 执行此操作,直到计算的宽度小于或大于目标宽度,并计算必须乘或除的频率 将已计数的数字添加到当前zoomvalue中,以获得目标zoomvalue 注意:您无法将贴图调
google.maps.geometry.spherical.ComputedIstanceBeween()
和map.getBounds()
(参见doku)在当前zoomlevel中测量地图的宽度注意:您无法将贴图调整为精确的宽度,因为您仅限于固定的缩放级别,因此这只是一个近似值 我通过创建一个具有给定距离的圆并使用该距离获得边界,实现了类似的效果。由于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);
由于窗口可以按您喜欢的任何维度显示,JavaScript不一定知道这些维度是什么,我想您必须自己进行计算。我想我必须找到中心和地图边界之间的距离,然后进行修正,以便缩放级别更改该距离,使其在所需距离的给定公差范围内(比方说200米),但如何根据已知的地图尺寸计算出所需的缩放级别却让我感到困惑。谷歌地图上的距离取决于:1.包含地图的div的大小2.您希望测量有效的纬度3.查看地图的缩放级别。G上提供的缩放级别oogle Maps API v3以2的因子进行量化。因此有两个问题:1.您希望地图大小至少显示X米宽,还是正好显示X米宽?(您只能通过更改地图分区的大小来获得近似“精确”的值)。2.您希望在地图上指定的大小在哪里,顶部、中心还是底部?地图的每个缩放级别(全尺寸)谷歌地图在左下角显示比例。你可以计算像素数,并用JavaScript创建一个具有比例的关联数组。此外,它的大小似乎随着每个缩放级别而增加一倍,因此如果你能计算出一个比例,你可以用这个事实来估计所有其他比例。在最高缩放级别,我计算66像素=50英尺(无论如何,在我的屏幕上)。最后我做了几乎与@LeJared完全相同的事情