react-native - 将 Region latitudeDelta/longitudeDelta 转换成近似的 zoomLevel

标签 react-native react-native-maps

我用大react-native-maps来自 Airbnb 上的 react-native应用程序。

我在 JSON 文件中得到了一个标记列表,其中每个标记都有一个属性 zoom这是标记应在 map 上显示/隐藏的近似缩放级别的整数。

有没有基于latitudeDelta的方法和 longitudeDeltaRegion获得当前缩放级别的近似两倍/整数,就像我们在 Google map 上(1 到 20)一样?

谢谢

最佳答案

好的,我有一个方便的解决方案,我不知道我们是否可以做得更好。

我添加了 onRegionChange事件来检索区域,然后我使用一些数学:

<MapView
    style={styles.map}
    initialRegion={this.state.region}
    onRegionChange={region => {
        clearTimeout(this.timerForMap)
        this.timerForMap = setTimeout(() => {
            this.showMarkers(region)
        }, 100)
    }}>
    ...

然后 :
showMarkers(region) {
    let zoom = Math.round(Math.log(360 / region.longitudeDelta) / Math.LN2)
    ...
}

如果有人有更好的方法,请随时发表评论!

谢谢。

关于react-native - 将 Region latitudeDelta/longitudeDelta 转换成近似的 zoomLevel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46568465/

相关文章:

javascript - 如何使用 react native 测试库查询具有特定文本的按钮

reactjs - 如何将 'requireNativeComponent' 添加到导出中?

javascript - 如何修复 android - React Native Map 中的显示位置按钮?

reactjs - react native "Value for longitude cannot be cast from String to Double"

react-native - 卸载 React Native App 时使用 Asyncstorage 更改或删除用户数据

javascript - 尽管其有效性,但未提供所需类型的变量

javascript - ListView React native cloneWithRows 未获取正确的数据

javascript - React-native-maps 标记方法 animateMarkerToCooperative 抛出未定义的错误

google-maps - Android 设备上的 React-native-maps 空白

android - 将 native 应用程序转换为 native android 依赖项/库