Skip to content

Clear strategy markers in clearOverlays() - #25

Open
wf9a5m75 wants to merge 1 commit into
developfrom
fix/clear-strategy
Open

wf9a5m75 wants to merge 1 commit into
developfrom
fix/clear-strategy

Conversation

@wf9a5m75

@wf9a5m75 wf9a5m75 commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

なぜ

clearOverlays() は、各プロバイダが自分で持つコントローラ(マーカー・ポリゴンなど)しか clear していませんでした。クラスタリングなどの拡張が登録する Strategy のコントローラ(StrategyMarkerController)は対象外で、clearOverlays() の後もクラスタのマーカーが地図に残っていました。

何を変えたか

clearOverlays() の最後で BaseMapViewController.clearStrategyMarkerControllers()(android-sdk-core の同名 PR で追加)を呼びます。

検証

2026-11-08 に develop(fix/mapview-teardown、fix/geodesic-polygon-fill、fix/clear-followups、refactor/polygon-controller などのマージ後)の上に載せ直してから確かめています。

  • 親ビルド(core とプロバイダを同じブランチの worktree に差し替え)で全モジュールのコンパイルと単体テストが通りました(ClearStrategyMarkerControllersTest、template の TemplateClearOverlaysStrategyTest を含む)。各 submodule の単体ビルド(ブランチの core を専用の maven リポジトリに publish して組む)でも通りました。
  • 落ちたテストは develop でも同じく落ちるもの 2 つだけです(template の Conformance 3 件の NPE、OMM の XYZ/TMS の 1 件 Log.isLoggable 未 mock)。
  • 11 プロバイダすべての clearOverlays() が clearStrategyMarkerControllers() を呼んでいることを、載せ直した後のコードで確認しました。
  • タブレット実機(develop + この PR 一式 + fix/overlay-stacking-order + MapTiler の restore を合わせた APK)で、MapLibre・Mapbox・Mappls・MapTiler・Google・HERE・OMM・TomTom・Longdo・ArcGIS 2D について、Strategy のマーカーを 3 本足して clearOverlays すると消えることを撮りました。
  • apiCheck: この PR の .api の差分は追加のみ。

確認できていないもの

  • ArcGIS 3D: 実機で検証ページの途中(逆の順で足している途中)にアプリが前面から消え、その後タブレットが adb から外れたため、原因を取れていません。載せ直す前は最後まで動いていました。
  • apiCheck は arcgis / mapbox / maplibre / mappls / omm で落ちますが、develop でも同じ内容で落ちます(develop にマージ済みの TILE_REFRESH_COALESCE と ArcGISMarkerController の引数変更が develop の .api に入っていない)。この PR とは無関係です。
  • CI: プロバイダの CI は core の同名ブランチ(この PR 一式の core)を clone して組むので、core 未マージでも通っています(初回は gradle のダウンロードのタイムアウトで落ちたものがあり、再実行で全部通りました)。

関連 PR(fix/clear-strategy の一式)

マージの順番:

  1. 各プラットフォームの core(android-sdk-core / ios-sdk-core / js-sdk-core)
  2. そのプラットフォームのプロバイダ(core の新しい API を呼ぶので、core より先に入れるとビルドが通りません)
  • web はさらに js-sdk-core の npm 公開と、各 react-for-* の依存の引き上げが前提です(npm 公開はまだしない、という決定なので、web のプロバイダ PR はそれまで保留です)。
  • fix/overlay-stacking-order の PR 一式とは衝突しません(git merge-tree で確認済み)。順番は clear-strategy → stacking を想定しています。

Markers drawn through a StrategyMarkerController (clustering and other
extension modules register these with registerOverlayController) were left
on the map by clearOverlays(), which only cleared this provider's own
controllers. Call BaseMapViewController.clearStrategyMarkerControllers().

Needs android-sdk-core with clearStrategyMarkerControllers()
(fix/clear-strategy).
This was referenced Nov 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant