React Native вычисляет расстояние между двумя координатами, используя GeoLib - PullRequest
0 голосов
/ 03 мая 2018

У меня есть две проблемы. Во-первых, я могу видеть долготу и широту моего текущего местоположения, если я запускаю приложение с помощью команды реагировать на собственный запуск-android. Если я перезагружаю экран, я получаю сообщение об ошибке «Тайм-аут запроса местоположения» и не вижу долготы и широты. Ниже изображение

enter image description here

Другая проблема, с которой я столкнулся, - это когда я пытался вычислить расстояние между двумя координатами долготы и широты, тогда я получаю ошибку пути. Ниже приведен мой код и снимок экрана с ошибкой:

import React, { Component } from 'react';
import { View, Text, TouchableOpacity, Linking } from 'react-native';
import geolib from "geolib";

class GeolocationExample extends Component {
  constructor(props) {
    super(props);

    this.state = {
      latitude: null,
      longitude: null,
      error: null,
    };
  }



  componentDidMount() {
    navigator.geolocation.getCurrentPosition(
      (position) => {
        this.setState({
          latitude: position.coords.latitude,
          longitude: position.coords.longitude,
          error: null,
        });
      },
      (error) => this.setState({ error: error.message }),
      { enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 },
    );
  }

  render() {

    let geolib = require('geo-lib');


    let result =geolib.Distance({
     p1: { lat: this.state.latitude, lon: this.state.longitude },
     p2: { lat: 33.613355, lon: -117.373261 }
 });


    return (
      <View style={{ flexGrow: 1, alignItems: 'center', justifyContent: 'center' }}>
        <Text>Latitude: {this.state.latitude}</Text>
        <Text>Longitude: {this.state.longitude}</Text>
        <Text>Distance between two points:result </Text>
        {this.state.error ? <Text>Error: {this.state.error}</Text> : null}


      </View>
    );
  }
}

export default GeolocationExample;

enter image description here

Я не уверен, почему появляется эта ошибка.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 03 мая 2018

Ошибка тайм-аута местоположения печально известна для определенных API-интерфейсов Android. Этот пакет предназначен для решения этой проблемы.

Для вашей проблемы с путём вы импортируете из 'geolib' без черты вверху, но затем вам требуется '1005 * с гео-библиотекой в вашем методе рендеринга. Я бы проверил, какая из них установлена, и удалил ссылки на другую.

...