2017-01-23 2 views
0

Привет ребята Мне нужна помощь в том, чтобы получить координаты пользователя при включенииРеагировать Родные Карты followUserLocation координаты

followUserLocation

на

MapView

. Есть ли способ, как это сделать или есть ли какие-либо альтернативы этому?

я уже сделал что-то вроде этого:

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(); 
} 

Уже используется Реагировать Native геолокации https://facebook.github.io/react-native/docs/geolocation.html но ничего не кажется, работает. Это дает мне только начальное местоположение пользователя, и оно не дает мне некоторых обновлений при изменении местоположения пользователя.

Я даже использовал setInterval, чтобы продолжать использовать API, чтобы он мог давать мне новые обновления в местоположении пользователя, но координаты все равно не меняются.

Я использовал поддельный GPS для перемещения своего местоположения или издевки моего местоположения. , пожалуйста, помогите, спасибо большое.

ответ

0

В любом случае, я все выяснил. Поскольку я не могу слушать местоположение пользователя, используя GPS мобильного устройства. То, что я сделал, я использовал код из React Native GeoLocation

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

Петля через него 1 раз в секунду, а затем обновить координатные состояния (лат и длинные), если есть изменения в системе координат. Пока это работает плавно. :)

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); 
Смежные вопросы