Карты React Native Переходят на маркер

#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. ты ссылался на свою карту?