基于地理位置精度设置Google Maps API v3的缩放级别

3
如何根据HTML5地理位置返回的准确度值,在Google Maps网络应用程序中计算适当的缩放级别?
基本上,我想让地图放大到足以显示细节,但是又要足够远,以显示由准确半径界定的区域(我正在中心点周围画一个圆来显示用户可能在其中的区域)。
我发现了一些关于使用地图API地理编码location_type的答案,但没有关于使用以米为单位返回的HTML5地理位置精度值的答案。
我感觉setBounds可能是一种方法,但这涉及将米转换为一组新的LatLng值,我感觉可能有点模糊(但也许在地理定位器准确度可能返回的距离范围内不会如此模糊)。
谢谢,
2个回答

3

先画一个 Circle,然后将圆的 bounds 作为参数传递给 fitBounds 函数。


@Fat Monk 你是怎么应用的? - Arun Prasad E S
可能不是在评论中最容易解释的事情,但是我们来试试。使用 locAccuracyCircle = new google.maps.Circle({put your circle params in here}); 创建 'locAccuracyCircle' 圆形,然后使用 locAccuracyCircle.setRadius(position.coords.accuracy); 将该圆形的半径设置为位置代码获取的位置精度。最后使用 map.fitBounds(locAccuracyCircle.getBounds()); 设置地图边界。 - Fat Monk

2
这对我很有帮助。
var zoomLevel = parseInt(Math.log2(591657550.5 / (accuracy * 45))) + 1;

这会根据准确性为我提供合理的缩放级别。(没有包括像素信息进行计算)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接