реагировать на изменение собственных карт - PullRequest
0 голосов
/ 08 апреля 2020

Я использую встроенные карты реагирования с маркером в реальном времени. Это мой код.

const markers = useSelector(state => state.map.markers);

  const animate = useCallback(() => {
    if (map) {
      map.animateToRegion({
        latitude: location.latitude,
        longitude: location.longitude,
        latitudeDelta: location.latitudeDelta,
        longitudeDelta: location.longitudeDelta,
      });
    }
  }, [location, map]);

  useEffect(() => {
    if (location && isMapReady) {
      animate();
    }
  }, [animate, location, isMapReady]);

  const onMapLayout = () => {
    setIsMapReady(true);
  };
<MapView
      ref={mapView => {
        map = mapView;
      }}
      provider={PROVIDER_GOOGLE}         
      region={location}
      onPress={() => {
        animate();
      }}
      onMapReady={onMapLayout}>
      {isMapReady &&
        markers.length !== 0 &&
        markers.map((marker, index) => (
          <MarkerAnimated
            key={index}
            coordinate={{
              latitude: marker.lat,
              longitude: marker.lon,
            }}                
          />
        ))}          
    </MapView>

, поэтому при изменении состояния маркеры обновляются и маркер изменяется в режиме реального времени на картах.

Но с одной проблемой,

реальное время наступает через 10 секунд, в течение этого времени, если я попытаюсь перетащить карты куда-либо или увеличить или уменьшить карты, при изменении состояния маркера все эти изменения будут потеряны, увеличение будет вернитесь к старому, и я вернусь к исходному местоположению и т. д. c.

Как это исправить?

Я хочу продолжить прокрутку внутри карты, увеличить между тем, маркеры должны обновляться в приложении?

Пожалуйста, помогите

...