TypeError: undefined не является объектом (оценка 'navigator.geolocation.getCurrentPosition')

Я недавно начал работать над response-native, теперь я пытаюсь получить доступ к response-native-maps по той причине, что где бы я ни нажимал на карту, он должен давать мне координаты. Я установил response-native-map и попытался использовать метод ниже

navigator.geolocation.getCurrentPosition((position) => {

Я получаю ошибку ниже.

E | ReactNativeJS ▶︎ TypeError: undefined is not an object (evaluating 'navigator.geolocation.getCurrentPosition')
                             │ 
                             │ This error is located at:
                             │ in App (at renderApplication.js:40)
                             │ in RCTView (at View.js:35)
                             │ in View (at AppContainer.js:98)
                             │ in RCTView (at View.js:35)
                             │ in View (at AppContainer.js:115)
                             └ in AppContainer (at renderApplication.js:39)

Мой код выглядит примерно так.

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

      var initialRegion = {
        latitude: lat,
        longitude: long,
        latitudeDelta: LATITUDE_DELTA,
        longitudeDelta: LONGITUDE_DELTA,
      }

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

Также я пробовал использовать другие методы, например

this.watchID = navigator.geolocation.watchPosition((position) => {

а также

navigator.geolocation.clearWatch(this.watchID);

Как я могу решить эту проблему и заставить эти методы работать из react-native-maps

Я использую import MapView from 'react-native-maps'; этот импорт


person Deepak N    schedule 06.09.2019    source источник
comment
Привет, можешь это проверить. stackoverflow.com/questions/3397585 /   -  person Satya Pendem    schedule 06.09.2019
comment
Нет, это другое дело. Спасибо   -  person Deepak N    schedule 06.09.2019


Ответы (1)


Я не уверен, что это тот ответ, который вы ищете, но если у вас нет проблем с использованием этой библиотеки react-native-geolocation из react-native-community, вы можете легко следить за его замечательным example. Пожалуйста, не забудьте добавить разрешение в файл AndroidManifest.xml следующим образом:

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

Вам также необходимо добавить метаданные в файл манифеста -

 <meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY"/>

Вы можете легко сгенерировать ключ API с помощью консоли Google API

person Yash Vardhan    schedule 07.09.2019
comment
Эти строки уже есть в том, но все еще не работают. - person Deepak N; 11.09.2019
comment
@DeepakN Пожалуйста, попробуйте выполнить следующий пример В последний раз, когда я проверял, он работал нормально, я использовал грубый подход, вызвав Geolocation.getCurrentPosition внутри конструктора, вы можете использовать его внутри componentDidMount. Я надеюсь, что это помогает. - person Yash Vardhan; 11.09.2019
comment
да, Geolocation.something ... () работает, но не navigator.geolocation.something .. () не работает. Хорошо, я пройдусь через это и скоро дам вам знать - person Deepak N; 11.09.2019
comment
@DeepakN, поэтому я рекомендовал эту библиотеку во второй строке этого ответа, я также столкнулся с той же проблемой при попытке получить доступ к местоположению с помощью navigator.geolocation, дайте мне знать, помогает ли это - person Yash Vardhan; 11.09.2019
comment
Да, функция Geolocation.somefunction () работает нормально. На самом деле я использовал React-native-location-view, где он использует вещь navigation.geolocation. Я изменил код в той библиотеке, которая работает, но есть ли способ использовать navigation.geolocation ?? - person Deepak N; 12.09.2019
comment
@DeepakN Я сообщу вам, если что-нибудь найду, я рад, что вы можете использовать response-native-geolocation. Между тем, если вы все еще сомневаетесь и хотите использовать то же самое «response-native-location-view», вы можете поднять вопрос на их github. Я не использовал его лично, поэтому не знаю, как с этим разобраться - person Yash Vardhan; 13.09.2019