Местоположение
Я думаю, вам нужно прочитать документацию о том, как расположение работает в реагирующем. Есть все методы, которые вам нужны для отслеживания местоположения пользователей.
https://facebook.github.io/react-native/docs/geolocation
getCurrentPosition
Вызывает успешный обратный вызов один раз с последней информацией о местоположении.
Это означает, что вы получаете только одно обновление для каждого вызова этой функции. Так что, если вы ожидаете, что он получит непрерывный поток обновлений, вы не читаете документацию.
watchPosition
Вызывает успешный обратный вызов при каждом изменении местоположения.
Это означает, что всякий раз, когда ваше устройство перемещает местоположение, вы будете получать уведомления и можете обновить свое состояние, указав новое местоположение. Тем не менее, он обновляется только при перемещении местоположения. Если вы не перемещаете местоположение, вы не будете получать обновления.
Из этого туториала вы узнаете, как использовать различные методы, доступные для определения местоположения.
https://hackernoon.com/react-native-basics-geolocation-adf3c0d10112
Обратный поиск геокодов
Во-вторых, получение имени текущего местоположения пользователя на основе координат GPS называется обратным поиском геокода. В настоящее время существует несколько пакетов, которые делают это
https://www.npmjs.com/package/@kiwicom/react-native-reverse-geocode
https://www.npmjs.com/package/@binpar/react-native-geocoder
https://www.npmjs.com/package/react-native-geocoder
Некоторые из них находятся в альфа / бета-версии, некоторые не обновлялись годами. Таким образом, ваш пробег может отличаться, однако вы не можете использовать эти пакеты с Expo.
Обратное геокодирование с помощью fetch и google api
Вы должны посмотреть документацию, которая есть у Google.
https://developers.google.com/maps/documentation/geocoding/start#reverse
Напоминание. Чтобы использовать API геокодирования, необходимо получить ключ API и
должен включить биллинг. Вы можете включить биллинг, когда получите ключ API
(см. Краткое руководство) или как отдельный процесс (см. Использование и
Billing).
Эта простая функция должна позволить вам выполнить обратный поиск в геокоде, вам просто нужно передать широту, долготу и ключ Google API
async getAddress (latitude, longitude, APIKEY) {
let url = `https://maps.googleapis.com/maps/api/geocode/json?latlng=${latitude},${longitude}&key=${APIKEY}`;
try {
let response = await fetch(url);
let responseJson = await response.json();
// do what you want with the responseJson here.
return responseJson
} catch (error) {
console.warn(error);
// make sure you handle error and return something if an error occurs
}
}