From a4a389eb0b75dd36ff3c0d14f255e768a300f616 Mon Sep 17 00:00:00 2001 From: Masashi Katsumata Date: Sat, 7 Nov 2026 20:52:54 -0800 Subject: [PATCH 1/2] Clear circles in clearOverlays() too clearOverlays() cleared every overlay controller except circleController, so circles stayed on the map. The other providers already clear it. --- src/main/java/com/mapconductor/mapbox/MapboxMapViewController.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/mapconductor/mapbox/MapboxMapViewController.kt b/src/main/java/com/mapconductor/mapbox/MapboxMapViewController.kt index e10bc14..7218dfa 100644 --- a/src/main/java/com/mapconductor/mapbox/MapboxMapViewController.kt +++ b/src/main/java/com/mapconductor/mapbox/MapboxMapViewController.kt @@ -266,6 +266,7 @@ class MapboxMapViewController internal constructor( polylineController.clear() polygonController.clear() groundImageController.clear() + circleController.clear() rasterLayerController.clear() } From 544220f8d803f0027fa1213eaa37652a88f00f6a Mon Sep 17 00:00:00 2001 From: Masashi Katsumata Date: Sat, 7 Nov 2026 20:52:54 -0800 Subject: [PATCH 2/2] Redraw markers after clearing them The marker controller's clear() emptied the manager, but onRemove only drops icon references; the GeoJSON source is rewritten from the manager in onPostProcess, which clear() never called. The markers stayed on the map after clearOverlays(). Call it once the manager is empty, the same order the core controllers use. --- .../com/mapconductor/mapbox/marker/MapboxMarkerController.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/mapconductor/mapbox/marker/MapboxMarkerController.kt b/src/main/java/com/mapconductor/mapbox/marker/MapboxMarkerController.kt index ee2ba1a..ee04202 100644 --- a/src/main/java/com/mapconductor/mapbox/marker/MapboxMarkerController.kt +++ b/src/main/java/com/mapconductor/mapbox/marker/MapboxMarkerController.kt @@ -112,6 +112,10 @@ class MapboxMarkerController private constructor( markerManager.clear() tiledMarkerIds.clear() removeTileOverlay() + // onRemove はアイコンの参照数を減らすだけで、地図のソースは onPostProcess が + // manager の中身から描き直すまで変わらない。空にした後で呼ばないと、 + // clearOverlays() の後もマーカーが地図に残る。 + renderer.onPostProcess() } viewportSwitch.requestReapply() }