Repository navigation
Conversation
Strategy marker controllers (clustering and other MarkerRenderingStrategy users) are not owned by a provider: extension modules such as android-marker-clustering's MarkerRenderingGroup create them and hand them to registerOverlayController. Every provider's clearOverlays() clears only its own fields, so markers drawn through a strategy stayed on the map. BaseMapViewController.clearStrategyMarkerControllers() clears every registered StrategyMarkerController (with the onRemove -> clear -> onPostProcess order from the previous commit). Providers call it from clearOverlays(). Controllers that only listen to the camera (heatmap) are left alone. ClearStrategyMarkerControllersTest fails when the helper does nothing and passes now. Public API: one protected method added.
This was referenced Nov 8, 2026
Open
This was referenced Nov 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
なぜ
clearOverlays()は、各プロバイダが自分で持つコントローラ(マーカー・ポリゴンなど)しか clear していませんでした。クラスタリングなどの拡張が登録する Strategy のコントローラ(StrategyMarkerController)は対象外で、clearOverlays()の後もクラスタのマーカーが地図に残っていました。何を変えたか
BaseMapViewController.clearStrategyMarkerControllers()(protected)を足しました。登録されているStrategyMarkerControllerをすべて clear します(clear の中身は前回の PR で直した onRemove → strategy.clear() → onPostProcess の順)。カメラだけを聞くコントローラ(ヒートマップ)は触りません。clearOverlays()からこれを呼びます(プロバイダ側の PR)。検証
2026-11-08 に develop(fix/mapview-teardown、fix/geodesic-polygon-fill、fix/clear-followups、refactor/polygon-controller などのマージ後)の上に載せ直してから確かめています。
ClearStrategyMarkerControllersTest、template のTemplateClearOverlaysStrategyTestを含む)。各 submodule の単体ビルド(ブランチの core を専用の maven リポジトリに publish して組む)でも通りました。Log.isLoggable未 mock)。clearOverlays()がclearStrategyMarkerControllers()を呼んでいることを、載せ直した後のコードで確認しました。fix/overlay-stacking-order+ MapTiler の restore を合わせた APK)で、MapLibre・Mapbox・Mappls・MapTiler・Google・HERE・OMM・TomTom・Longdo・ArcGIS 2D について、Strategy のマーカーを 3 本足して clearOverlays すると消えることを撮りました。.apiの差分は追加のみ。確認できていないもの
TILE_REFRESH_COALESCEと ArcGISMarkerController の引数変更が develop の.apiに入っていない)。この PR とは無関係です。関連 PR(
fix/clear-strategyの一式)マージの順番:
fix/overlay-stacking-orderの PR 一式とは衝突しません(git merge-treeで確認済み)。順番は clear-strategy → stacking を想定しています。