Я использую встроенные карты реагирования с маркером в реальном времени. Это мой код.
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.
Как это исправить?
Я хочу продолжить прокрутку внутри карты, увеличить между тем, маркеры должны обновляться в приложении?
Пожалуйста, помогите