Android:有时谷歌地图显示错误的当前位置

时间:2018-01-30 06:21:54

标签: android ios google-maps react-native-maps

我正在使用react-native-maps来显示地图

我的当前位置如下:

     navigator.geolocation.getCurrentPosition(
      position => {

        region = {
          latitude: position.coords.latitude,
          longitude: position.coords.longitude,
          latitudeDelta: this.state.position.latitudeDelta,
          longitudeDelta: this.state.position.longitudeDelta
        }

        this.setState(
          {
            position: {
              latitude: region.latitude,
              longitude: region.longitude,
              latitudeDelta: region.latitudeDelta,
              longitudeDelta: region.longitudeDelta,
              error: null
            }
          })
})

但有时它会显示我所处的位置 任何人都可以建议如何通过代码来解决这个问题 谢谢

1 个答案:

答案 0 :(得分:1)

您应该考虑使用参数'maximumAge'。例如

navigator.geolocation.getCurrentPosition(position => {
      region: {
        latitude: position.coords.latitude,
        longitude: position.coords.longitude,
        latitudeDelta: this.state.position.latitudeDelta,
        longitudeDelta: this.state.position.longitudeDelta
      }
     this.setState(
      {
        position: {
          latitude: region.latitude,
          longitude: region.longitude,
          latitudeDelta: region.latitudeDelta,
          longitudeDelta: region.longitudeDelta,
          error: null
        }
      })
}, err => {
  console.log(err)
  alert('fetching the position failed')
}, {enableHighAccuracy: false, timeout: 20000, maximumAge: 0})

根据MDN documentation

  

PositionOptions.maximumAge属性是一个正长值,表示可以返回的可能缓存位置的最大年龄(以毫秒为单位)。如果设置为0,则表示设备无法使用缓存位置,必须尝试检索实际当前位置。如果设置为Infinity,则无论其年龄如何,设备都必须返回缓存位置。