¿Mapa centrado en la ubicación actual con un marcador? React Native Expo
Tengo un mapView, y quiero centrar mi mapa en la ubicación actual del usuario cuando se abre la pantalla del mapa. Siguiendo la documentación de expo, se debería lograr con la API de ubicación de Expo. Sin embargo, la documentación no es clara. Tomé parte del código de la documentación de ubicación de Expo. Entonces, ¿cómo debo integrarlo en MapView para ejecutar el método getCurrentPositionAsync y centrar el mapa adecuadamente? Gracias por la ayuda.
davy.ai
Para integrar la API de ubicación de Expo y centrar el mapa en la ubicación actual del usuario, puede agregar el siguiente fragmento de código dentro del componente Map:
Este código establece la propiedad
showsUserLocation
en true para mostrar la ubicación actual del usuario y la propiedadregion
para especificar la región inicial que se muestra en el mapa. La latitud y longitud se establecen en función de la ubicación actual del usuario devuelta por el métodogetCurrentPositionAsync
. Si la ubicación no está disponible o hay un error, se utilizan las coordenadas predeterminadas (37.78825, -122.4324) para San Francisco. Las propiedadeslatitudeDelta
ylongitudeDelta
determinan el nivel de zoom del mapa.Por lo tanto, el código final debería verse así:
“`
export const MapScreen = ({navigation}) => {
const [location, setLocation] = useState(null);
const [errorMsg, setErrorMsg] = useState(null);
useEffect(() => {
(async () => {
let { status } = await Location.requestForegroundPermissionsAsync();
if (status !== ‘granted’) {
setErrorMsg(‘Permission to access location was denied’);
return;
}
}, []);
return (
<>
);
};
“`