gpt4 book ai didi

react-native - 使用 react 原生 map 多次调用 onRegionChangeComplete 函数

转载 作者:行者123 更新时间:2023-12-03 13:54:54 27 4
gpt4 key购买 nike

我想在 map 中移动某个位置时更改我的初始区域,我为此使用了 onRegionChangeComplete 功能,但它一次调用两次或三次。

这是我的代码:

onRegionChangeComplete(region) {
if(!this.state.initialRegionChange){
console.log("changeRegion:"+JSON.stringify(region))
var initialRegion = {
latitude: region.latitude,
longitude :region.longitude,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA
}
var lat = parseFloat(region.latitude)
var lang = parseFloat(region.longitude)
}else{
this.setState({
initialRegionChange:false
})
}
}

render(){
return(
<MapView
ref="map"
style={styles.map}
initialRegion={this.state.region}
provider={MapView.PROVIDER_DEFAULT}
zoomEnabled={true}
onRegionChangeComplete={this.onRegionChangeComplete.bind(this)}
pitchEnabled={true}
showsCompass={true}
showsBuildings={true}
showsUserLocation={true}
showsTraffic={true}
showsIndoors={true}
/>
)
}

请给我建议如何解决这个问题。

非常感谢任何帮助。

这是我正在关注的模块链接。
https://github.com/react-community/react-native-maps

最佳答案

这可能是一个老问题,但我会提供对我有用的东西以供引用。就我而言,只是区域的精度发生了变化onRegionChangeComplete ,这使 map 认为该区域已更改。为了解决这个问题,我只是将输入区域与先前设置的区域进行了比较,但在比较中将坐标的小数点限制为 6。像这样的东西:

onRegionChange = (region) => {
if(region.latitude.toFixed(6) === this.state.region.latitude.toFixed(6)
&& region.longitude.toFixed(6) === this.state.region.longitude.toFixed(6)){
return;
}

this.setState({region});
}

关于react-native - 使用 react 原生 map 多次调用 onRegionChangeComplete 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47832224/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com