首页 > 解决方案 > React Native MapView:什么是latitudeDelta longitudeDelta

问题描述

react native mapview的示例中,它们具有 latitudeDelta 和 longitudeDelta。它等于高度和宽度吗?在什么单位?根据他们的github 评论,它说

要显示的最小和最大纬度/经度之间的距离。

但这对我没有帮助。我想知道用户在地图上看到了什么。

标签: react-nativereact-native-maps

解决方案


我也来到这里,因为我找不到任何好的文档,而谷歌搜索也没有帮助。以下是我自己的研究:

只有一个latitudeDeltalongitudeDelta曾经用于计算地图的大小。它根据以下公式取两者中的较大者并忽略另一个。这样做是为了避免拉伸地图。

  1. 地图的大小根据样式中指定的宽度和高度和/或由 react-native 计算。
  2. 该映射计算两个值,longitudeDelta/width并且latitudeDelta/height比较这两个计算值,并取两者中的较大者。
  3. 地图将根据在步骤 2 中选择的值进行缩放,而忽略其他值。
    • 如果选择的值为longitudeDelta,则左边缘为longitude - longitudeDelta,右边缘为longitude + longitudeDelta。顶部和底部是填充高度而不拉伸地图所需的任何值。
    • 如果选择的值为latitudeDelta,则底边为latitude - latitudeDelta,顶边为latitude + latitudeDelta。left 和 right 是在不拉伸地图的情况下填充宽度​​所需的任何值。

这里有些例子:

// this uses latitudeDelta because 0.04/300 > 0.05/600
<MapView
  style={{width: 600, height: 300}}
  region={{
    latitude: 31.776685,
    longitude: 35.234491,
    latitudeDelta: 0.04,
    longitudeDelta: 0.05,
  }}
/>



// this uses longitudeDelta because 0.05/600 > 0/myVar when myVar > 0
<MapView
  style={{width: 600, height: myVar}}
  region={{
    latitude: 40.689220,
    longitude: -74.044502,
    latitudeDelta: 0,
    longitudeDelta: 0.05,
  }}
/>

推荐阅读