有没有办法知道用户在react-native-maps地图上放大或缩小?
如何获取缩放级别或更新后的latitudeDelta?
有没有办法知道用户在react-native-maps地图上放大或缩小?
如何获取缩放级别或更新后的latitudeDelta?
如果想要知道用户何时缩放(或改变区域的任何部分),可以添加一个回调函数来监听区域的变化(onRegionChange)。在回调函数中,您可以访问新区域的数据:
最初的回答:
为了知道用户何时缩放(或更改区域的任何一部分),您可以添加一个回调函数来监听区域的更改(onRegionChange)。在回调函数中,您可以访问新区域的数据:
latitude: number;
longitude: number;
latitudeDelta: number;
longitudeDelta: number;
要查找用户是否缩放,我们只需要查看latitudeDelta或longitudeDelta并将其与先前的值进行比较。
回调函数可以实现如下:
在render函数中
Original Answer翻译成"最初的回答"
<MapView
onRegionChange={this.onRegionChange}
/>
onRegionChange = region => {
if(region.latitudeDelta !== this.state.latitudeDelta){
//user zoomed
this.setState({latitudeDelta: region.latitudeDelta});
}
}
longitudeDelta
会发生变化,但是 latitudeDelta
在缩放时不会改变。
因此,您可以使用 <MapView/>
的 onRegionChangeComplete
事件。
const _longitudeDelta = useRef<number | null>(null);
//--------------------------------------------------------------------
<MapView
onRegionChange={({ longitudeDelta }) => {
if (longitudeDelta !== _longitudeDelta.current) {
console.log("user zoomed");
_longitudeDelta.current = longitudeDelta;
}
}}
/>