получить широту и длину от экспозиции, чтобы получить на карте - PullRequest
0 голосов
/ 18 ноября 2018

Я нашел этот код в документах по местоположению выставки:

state = {
location: null,
errorMessage: null,
};

componentWillMount() {
    if (Platform.OS === 'android' && !Constants.isDevice) {
  this.setState({
    errorMessage: 'Oops, this will not work on Sketch in an Android 
    emulator. Try it on your device!',
    });
    } else {
  this._getLocationAsync();
   }
  }

    _getLocationAsync = async () => {
      let { status } = await Permissions.askAsync(Permissions.LOCATION);
   if (status !== 'granted') {
      this.setState({
    errorMessage: 'Permission to access location was denied',
   });
   }

     let location = await Location.getCurrentPositionAsync({});
   this.setState({ location });
    };

  render() {
   let text = 'Waiting..';
   if (this.state.errorMessage) {
    text = this.state.errorMessage;
   } else if (this.state.location) {
    text = JSON.stringify(this.state.location);
    }

   return (
     <View style={styles.container}>
     <Text style={styles.paragraph}>{text}</Text>
       </View>
      );
      }
     }

он отлично работает для меня, возвращая мою лат, long, метку времени точности и другие вещи.

может кто-нибудь сказать мнеКак я могу получить свои координаты и отобразить их на карте?я хочу использовать состояние lat, long и передать значения, к которым оно получило доступ из моего местоположения, в это состояние, чтобы в дальнейшем поместить его в начальную область просмотра карты

любого, кто может помочь ??

1 Ответ

0 голосов
/ 10 февраля 2019

Я знаю, что этот ответ немного запоздал, но в случае, если кто-то столкнется с ним, я сделал следующее:

Добавлено свойство региона для указания:

state = {
    location: null,
    region: null,
    errorMessage: null,
};

В getLocations я перевел объект местоположения, возвращенный из вызова getCurrentPositionAsync (), в регион:

getLocationAsync = async () => {
        let { status } = await Permissions.askAsync(Permissions.LOCATION);
        if (status !== 'granted') {
            this.setState({
                errorMessage: 'Permission to access location was denied',
            });
        }

        let location = await Location.getCurrentPositionAsync({});

        const region = {
            latitude: location.coords.latitude,
            longitude: location.coords.longitude,
            latitudeDelta: 1.0,
            longitudeDelta: 1.0
        }

        this.setState({ location, region });
    };

И, наконец, в методе рендеринга я использовал свойство region для состояния, чтобы установить регион в просмотре карты:

render() {
        return (
            <MapView
                initialRegion={this.state.region}
            />
        );
    }

После завершения асинхронного вызова для определения местоположения карта переходит на текущее местоположение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...