无论如何在谷歌地图上计算英里或米到像素以计算缩放级别?

Posted

技术标签:

【中文标题】无论如何在谷歌地图上计算英里或米到像素以计算缩放级别?【英文标题】:is there anyway to calculate miles or meters to pixel on google map for calculating zoom level? 【发布时间】:2016-05-06 04:17:05 【问题描述】:

我一直在寻找这个东西很长一段时间。 是否有任何数学公式可以将英里或米转换为谷歌地图中缩放级别的像素?任何形式的帮助表示赞赏。我目前正在为 ios 工作。

【问题讨论】:

看看这个gis.stackexchange.com/questions/7430/… 运气不好。该线程提出了假设。 【参考方案1】:

我从这里找到了解决方案 https://gist.github.com/ryanhanwu/4dbcdbdf384f5a3cca1f 我为 Swift 4 重写了它,如下所示

let topLeft: CLLocationCoordinate2D = mapView.projection.visibleRegion().farLeft
let bottomLeft: CLLocationCoordinate2D = mapView.projection.visibleRegion().nearLeft
let zoom = mapView.camera.zoom
let lat = Double(fabs(Float(topLeft.latitude - bottomLeft.latitude)))
let metersPerPixel: Double = Double((cos(lat * .pi / 180) * 2 * .pi) * 6378137 / Double((256 * pow(2, zoom))))

【讨论】:

以上是关于无论如何在谷歌地图上计算英里或米到像素以计算缩放级别?的主要内容,如果未能解决你的问题,请参考以下文章

GPS不准确时如何计算可能位置的面积(如在谷歌地图中)

如何在谷歌地图中设置缩放级别

如何在谷歌地图中找到当前的缩放级别?

计算在谷歌地图上绘制的多边形的面积

使折线水平显示在谷歌地图上并将其缩放到中心坐标

在谷歌地图中做“沿途的兴趣点”