如何在react-native-maps中计算当前区域的尺寸?

时间:2018-12-23 23:41:47

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

latitude: 38.69444432847513
latitudeDelta: 0.1288559458782288
longitude: -90.5969550254043
longitudeDelta: 0.1638044205986091

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

如何获取当前区域的距离(直径),以千米为单位? (由于手机处于纵向模式,因此宽度小于高度)

我可以轻松进行转换吗?

1 个答案:

答案 0 :(得分:2)

Definition of latitudeDelta

  

南北距离的量(以度为单位)

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

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

longitudeDelta * 40075 * cos(latitude) / 360

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