【问题标题】:Why are my MapView's zoom limits not working?为什么我的 MapView 的缩放限制不起作用?
【发布时间】:2019-11-29 17:25:13
【问题描述】:

我正在尝试限制我正在制作的应用程序的最大“缩小”。问题是,即使我设置了非常有限的缩放限制,用户仍然可以根据需要放大和缩小。我对 Expo 应用程序比较陌生,所以我可能只是不了解 react-native-maps 库。

这是我的地图的 render() 方法的外观:

render() {

        return (
            <MapView
                style={styles.mapStyle}
                region={this.state.region}
                provider="google"
                zoomEnabled={false}
                minZoomLevel={18}
                maxZoomLevel={20}
                showsMyLocationButton={true}
                showsUserLocation={true}
            />
        )
    }

我有逻辑将地图置于用户位置的中心(未显示 - 在componentDidMount() 中处理),但此处的缩放限制似乎不会对地图的初始渲染产生影响。一旦用户缩小,天空就是极限——如果他们愿意,他们可以缩小以看到整个世界。这对我的应用程序不是很有用,所以我想让这些限制发挥作用(或者至少更好地理解它是如何工作的)。提前致谢!

【问题讨论】:

    标签: expo react-native-maps


    【解决方案1】:

    又挖了大约 6 分钟 (/facepalm),我发现我搞砸了。 “问题”是我不明白这些缩放值是如何工作的。这有点奇怪,但总的来说:

    • 缩放值越低,距离地图越远(例如,低缩放值 === 显示大面积地图)
      • 这对我来说有点反直觉;我一直以为0 是“最近”级别的缩放,但实际上是最远的

    我用这个修复完成了什么

    此修复使我能够使地图阻止用户缩小超过“最远”缩放级别;就我而言,我使用的是10 中的minZoomLevel,这大约是一个大城市及其周边地区的面积。我正在使用20 中的maxZoomLevel,这是“最接近的”缩放级别。

    此外,我需要删除 zoomEnabled={false} - 这是我之前在我的代码中闲逛的保留 - 这个设置阻止了所有缩放交互(它也让我绊倒,直到我记得删除它)。

    希望这对其他人有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多