#react-native #react-native-maps
Вопрос:
Поэтому я создаю приложение, которое обновляет местоположение GPS с помощью маркера. Проблема в том, что начальная область не находится рядом с маркером и будет меняться.
У меня есть кнопка для обновления местоположения GPS, есть ли способ, чтобы карта перешла к маркеру?
Я не вижу в документации ничего, что указывало бы на это.
<MapView
style={styles.map}
initialRegion={region}
ref={_map}
onRegionChangeComplete={region => {setRegion(region)}}
>
<Marker
coordinate={{
latitude: lat,
longitude: long,
}}
key={lat}
title="Location"
style={{width: 26, height: 40}}
description={address}
resizeMode='contain'
/>
</MapView>
Ответ №1:
Вы можете использовать де-атрибут animateToRegio для карт react-native.
Что-то вроде этого:
function getLocation(){
Geolocation.getCurrentPosition(position => {
const region = {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: 0.0043,
longitudeDelta: 0.0034
};
map.current.animateToRegion(region, 500);
});
};
Затем, нажав на кнопку или что бы вы ни хотели, вы можете вызвать эту функцию, чтобы перейти к своей позиции, или вы можете изменить широту и долготу на координаты ваших маркеров
Комментарии:
1. Извините, что я добавил свой код выше. У меня нет геолокации, я хочу обновить местоположение GPS, которое я установил, и перейти к этой точке
2. Так что, похоже, это сработало… однако для того, чтобы это действительно сработало, требуется 2 нажатия кнопок.
3. вы можете создать функцию с регионом animateToRegion и передать параметры координат, которые есть у вашего маркера, как показано выше, с вашим текущим.animatedToRegion, передавая координаты и время, чтобы добраться до вашего местоположения
4. Итак, я сделал это, но он продолжает говорить, что карта не является переменной?
5. ты ссылался на свою карту?