#javascript #react-native #expo #react-native-maps #google-maps-react
Вопрос:
У меня есть представление карты, и я хочу центрировать свою карту на текущем местоположении пользователя, когда откроется экран карты. Следуя документации expo, это должно быть достигнуто с помощью API определения местоположения Expo. Однако документация неясна. Я взял часть кода из документации по местоположению выставки. Итак, как я должен интегрировать его в MapView, чтобы выполнить метод getCurrentPositionAsync и соответствующим образом центрировать карту? Спасибо за помощь
import React, { useContext, useState, useEffect } from "react"; import MapView from "react-native-maps"; import styled from "styled-components"; import { Searchbar } from "react-native-paper"; import { View } from "react-native"; import * as Location from 'expo-location'; const Map = styled(MapView)` height: 100%; width: 100%; `; const SearchBarContainer= styled(View)` padding: ${(props) =gt; props.theme.space[3]}; position: absolute; z-index: 999; top: 20px; width: 100%; `; export const MapScreen = ({navigation}) =gt; { const [location, setLocation] = useState(null); const [errorMsg, setErrorMsg] = useState(null); useEffect(() =gt; { (async () =gt; { let { status } = await Location.requestForegroundPermissionsAsync(); if (status !== 'granted') { setErrorMsg('Permission to access location was denied'); return; } let location = await Location.getCurrentPositionAsync({}); setLocation(location); })(); }, []); return ( lt;gt; lt;SearchBarContainergt; lt;Searchbar placeholder="location"/gt; lt;/SearchBarContainergt; lt;Map showsUserLocation={true}gt; lt;/Mapgt; lt;/gt; );};