【问题标题】:Setting zoom level based on geolocation accuracy in Google Maps API v3在 Google Maps API v3 中根据地理位置精度设置缩放级别
【发布时间】:2014-05-04 15:04:33
【问题描述】:

如何根据 HTML5 地理位置返回的准确度值计算要在 Google 地图网络应用程序中设置的适当缩放级别?

本质上,我希望地图放大到足以显示细节,但放大到足以显示由精度半径限定的区域(我在中心点周围画了一个圆圈以显示用户可能是的区域中)。

我找到了与使用 maps API 地理编码 location_type 相关的答案,但没有找到与使用以米为单位返回的 HTML5 地理定位精度值相关的答案。

我觉得 setBounds 可能是一种方法,但这涉及将米转换为一组新的 LatLng 值,我觉得这可能有点模糊(但在地理定位器的距离上可能没有那么模糊准确性可能会恢复)。

谢谢,

【问题讨论】:

    标签: javascript html google-maps-api-3 geolocation


    【解决方案1】:

    这对我有帮助

    var zoomLevel = parseInt(Math.log2(591657550.5 / (accuracy * 45))) + 1;
    

    这为我提供了基于准确性的合理缩放级别。 (未包含用于计算的像素信息)

    【讨论】:

      【解决方案2】:

      画出Circle,然后用圆圈的bounds作为fitBounds的参数

      【讨论】:

      • @Fat Monk 你是怎么应用这个的。
      • 在 cmets 中可能不是最容易解释的东西,但在这里。使用locAccuracyCircle = new google.maps.Circle({put your circle params in here}); 创建“locAccuracyCircle”圆,然后将该圆的半径设置为您的位置代码使用locAccuracyCircle.setRadius(position.coords.accuracy); 获得的位置精度。最后用map.fitBounds(locAccuracyCircle.getBounds());设置地图边界
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      相关资源
      最近更新 更多