如何使用react-native-maps实时观察经纬度

时间:2019-03-15 11:01:18

标签: android react-native

我是新创建的跟踪系统,在观看我的经纬度和长时间实时位置时遇到问题,为什么在几秒钟后我的GPS会关闭。我这里有一个例子,我看着我的手机,而GPS并没有关闭,这是一个抢车应用程序。如何在react-native中做到这一点?

以下是Grab出租车应用程序的示例。

Phone Capture

现在我的应用程序看起来像这样,如您所见,GPS关闭了,我不知道为什么会这样,GPS仅在我的应用程序上运行一次,然后一秒钟后,我认为3到4秒钟,它将自动关闭。

Captured on my application

有人在经历这些吗,您能帮我解决这个问题吗? 我将向大家展示我的示例代码。

我的状态:

this.state = {
  initialPosition: {
    latitude: 0,
    longitude: 0,
    latitudeDelta:0,
    longitudeDelta:0
  },
  markerPosition: {
    latitude:0,
    longitude:0
  }
}

我的组件安装:

componentDidMount () {
  navigator.geolocation.getCurrentPosition((position) => {
    var lat = parseFloat(position.coords.latitude);
    var long = parseFloat(position.coords.longitude);

    var initialRegion = {
      latitude: lat,
      longitude: long,
      latitudeDelta: LATTITUDE_DELTA,
      longitudeDelta: LONGTITUDE_DELTA
    };

    this.setState({ initialPosition: initialRegion });
    this.setState({ markerPosition: initialRegion });
  }
  , (error) => alert(JSON.stringify(error)),
  { enableHighAccuracy: true, timeout: 20000, maximumAge: 2000 });

  this.watchID = navigator.geolocation.watchPosition((position) => {
    var lat = parseFloat(position.coords.latitude);
    var long = parseFloat(position.coords.longitude);
    var lastRegion = {
      latitude: lat,
      longitude: long,
      latitudeDelta: LATTITUDE_DELTA,
      longitudeDelta: LONGTITUDE_DELTA
    };

    this.setState({ initialPosition: lastRegion });
    this.setState({ markerPosition: lastRegion });
  });
}

componentWillUnmount () {
  navigator.geolocation.clearWatch(this.watchID);
}

我在AndroidManifest.xml中的权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

0 个答案:

没有答案