【问题标题】:How can I calculate the dimensions of the current region in react-native-maps?如何计算 react-native-maps 中当前区域的尺寸?
【发布时间】:2018-12-23 23:41:46
【问题描述】:
latitude: 38.69444432847513
latitudeDelta: 0.1288559458782288
longitude: -90.5969550254043
longitudeDelta: 0.1638044205986091

假设我的地图区域有上面的数据(我使用onRegionChange)

如何获取当前区域的距离(直径),以公里为单位? (宽度会小于高度,因为手机是竖屏模式)

我可以做一个简单的转换吗?

【问题讨论】:

  • 您能否详细说明“距离”部分?你想计算到不同点的距离还是屏幕角落之间的距离?直接距离还是公路距离?

标签: google-maps react-native maps react-native-maps


【解决方案1】:

Definition of latitudeDelta:

南北距离(以度为单位)

因此,您只需将latitudeDelta 乘以111 即可得到近似高度(如果高度> 宽度,则应为直径)。

如果您需要宽度,公式会稍微复杂一些,因为它取决于纬度:

longitudeDelta * 40075 * cos(latitude) / 360

如果您需要非常精确的直径值,可以使用Haversine formulaVincenty's formulae,您可以自行实现或使用 npm 模块。
公式的两点将是(latitude - latitudeDelta / 2, longitude)(latitude + latitudeDelta / 2, longitude)

【讨论】:

  • 如果我简单地将 latitudeDelta 乘以 111,结果会以公里为单位吗?
  • 是的。地球不是完美的球形,因此范围从 110.5 到 111.7 不等,因此您的计算值可能会偏离高达 ~0.5%。
猜你喜欢
  • 2019-01-29
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2018-05-13
  • 1970-01-01
相关资源
最近更新 更多