diff --git a/android/src/main/assets/leaflet.html b/android/src/main/assets/leaflet.html
index 49818dc..759cea8 100644
--- a/android/src/main/assets/leaflet.html
+++ b/android/src/main/assets/leaflet.html
@@ -1 +1 @@
-
+
diff --git a/src/LeafletView/index.tsx b/src/LeafletView/index.tsx
index 582a7c2..0e969ed 100644
--- a/src/LeafletView/index.tsx
+++ b/src/LeafletView/index.tsx
@@ -78,6 +78,7 @@ const LeafletView: React.FC = ({
}) => {
const webViewRef = useRef(null);
const [initialized, setInitialized] = useState(false);
+ const ownPositionMarkerRef = useRef(false);
const logMessage = useCallback(
(message: string) => {
@@ -206,13 +207,31 @@ const LeafletView: React.FC = ({
//Handle ownPositionMarker update
useEffect(() => {
- if (!initialized || !ownPositionMarker) {
+ if (!initialized) {
return;
}
- sendMessage({
- ownPositionMarker: { ...ownPositionMarker, id: OWN_POSTION_MARKER_ID },
- });
- }, [initialized, ownPositionMarker, sendMessage]);
+
+ if (ownPositionMarker) {
+ ownPositionMarkerRef.current = true;
+ sendMessage({
+ ownPositionMarker: { ...ownPositionMarker, id: OWN_POSTION_MARKER_ID },
+ });
+ } else if (ownPositionMarkerRef.current) {
+ ownPositionMarkerRef.current = false;
+ sendMessage({
+ ownPositionMarker: {
+ id: OWN_POSTION_MARKER_ID,
+ position: {
+ lat: 0,
+ lng: 0,
+ },
+ title: '',
+ size: [0, 0],
+ icon: '',
+ },
+ });
+ }
+ }, [initialized, ownPositionMarker, sendMessage, ownPositionMarkerRef]);
//Handle mapCenterPosition update
useEffect(() => {