使用React Antive Maps多次调用RegionChangeComplete的功能



我想在地图中移动某个位置时更改我的初始区域,我使用了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/reeact-community/reaeact-native-maps

这可能是一个古老的问题,但我将提供对我有用的内容。就我而言,只是该地区的精度改变了onRegionChangeComplete,这使地图认为该地区已被更改。为了解决此问题,我只是将输入区域与先前设置的区域进行了比较,但是在比较中将坐标的小数限制为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-maps version => v0.28.0,iOS中不存在此问题,

对于Android: -

当区域更改时,例如用户完成地图时,将调用一次。第二个参数是一个对象,其中包含有关移动的更多详细信息。Isgesture属性指示该动作是来自用户(true)还是动画(false)。注意:Isgesture仅由Google Maps支持。

onRegionChangeComplete={(region, gesture) => {
              if (Platform.OS === 'android') {
                if (gesture.isGesture) {
                  onRegionChange(region);
                }
              } else {
                onRegionChange(region);
              }
            
          }}

这是react-native-maps的记录问题,甚至提交了一个拉动请求来修复它:https://github.com/react-community/reacmunity/react-native-maps/pull/1597年。您可以立即将拉的请求合并到react-native-maps的本地副本中,也可以等待发布。我建议将您的支持添加到PR上,以更加关注它并更快地合并。我知道这不是您问题的解决方案,但是目前您在源代码中无法做任何事情来修复它 - 您需要库本身才能更改。希望这会有所帮助!

相关内容

  • 没有找到相关文章

最新更新