React Native Maps followUserLocation 坐标

Posted

技术标签:

【中文标题】React Native Maps followUserLocation 坐标【英文标题】:React Native Maps followUserLocation coordinates 【发布时间】:2017-01-23 09:15:42 【问题描述】:

大家好,我需要一些关于如何在启用时获取用户坐标的帮助

关注用户位置

地图视图

。有没有办法做到这一点,或者有没有可能的替代方案?

我已经做过这样的事情了:

import DeviceEventEmitter from 'react-native';
import RNALocation from 'react-native-android-location';
import MapView from 'react-native-maps';

componentDidMount() 
    DeviceEventEmitter.addListener('updateLocation', function(e: Event) 
      console.log(e);
      this.setState(lng: e.Longitude, lat: e.Latitude );
    .bind(this));
    RNALocation.getLocation();
 

已经使用 React Native Geolocation https://facebook.github.io/react-native/docs/geolocation.html 但似乎没有任何效果。它只给我用户的初始位置,当用户位置发生变化时它不会给我一些更新。

我什至使用setInterval 继续调用 API,以便它可以为我提供有关用户位置的新更新,但坐标仍然没有改变。

我使用假 GPS 移动我的位置或模拟我的位置。 .请帮忙,非常感谢。

【问题讨论】:

【参考方案1】:

您可以使用 navigator.geolocation.watchPosition (https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition)

const options = options = 
  enableHighAccuracy: false,
  timeout: 5000,
  maximumAge: 0
;
navigator.geolocation.watchPosition((lastPosition) => 
    this.setState(lng: lastPosition.coords.longitude, lat: lastPosition.coords.latitude );
, (error) => 
  console.log('Error', error)
, options);

【讨论】:

【参考方案2】:

不管怎样,我都解决了。由于我无法使用移动设备的 GPS 收听用户位置。我所做的是我使用了来自 React Native 地理位置的代码

navigator.geolocation.getCurrentPosition(
  (position) => 
    var initialPosition = JSON.stringify(position);
    this.setState(initialPosition);
  ,
  (error) => alert(JSON.stringify(error)),
  enableHighAccuracy: true, timeout: 20000, maximumAge: 1000
);

每 1 秒循环一次,然后在坐标发生变化时更新坐标状态(纬度和经度)。到目前为止,它工作顺利。 :)

【讨论】:

以上是关于React Native Maps followUserLocation 坐标的主要内容,如果未能解决你的问题,请参考以下文章

react-native-maps 中的当前位置

更新 react-native-maps 以使用 create-react-native-app

react native - react-native-maps initialRegion 不起作用

无法在我的项目中运行 react-native-maps

React-Native-Maps:地图为空。仅显示 Google 徽标和标记

缩放到指定的标记 react-native-maps