Skip to content

Clear registered strategy markers in clearOverlays() - #19

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.clearOverlayControllers()(js-sdk-core の同名 PR で追加)経由にしました。自前の 6 つのコントローラは前と同じ順に clear し、その後に拡張が登録したコントローラを clear します。

公開済みの js-sdk-core ^0.3.x にはこのメソッドが無いので、js-sdk-core の新しい版が出るまでこのプロバイダはビルドが通りません。

検証

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

  • 合成した react-sdk のツリーで、clear-strategy だけの構成(core・15 プロバイダ・template)と、develop + clear-strategy + stacking の構成の両方で、全パッケージのビルド・テスト(core 251 件など)・api-surface check が通りました。公開 API は OverlayControllerLike.clear?() の追加のみ。
  • ClearOverlaysStrategy.test.mjs は前の core で落ち、今は通ります。template の conformance テスト(checkClearOverlaysReachesExtensions)も通ります。
  • Playwright(develop + 両方の構成)で 15 プロバイダ・17 ルートを開き、Strategy のマーカーを 3 本足して clearOverlays すると 0 本になることを確かめました(MapTiler を除く。下記)。

確認できていないもの

  • CI: react-sdk(template)の Unit tests は、submodule の js-sdk-core が develop の版に固定されているため checkClearOverlaysReachesExtensions が無く落ちます。js-sdk-core の PR のマージと submodule の引き上げの後に通る見込みです。
  • MapTiler は検証ページで Strategy のマーカーがもともと描かれず(直す前も同じ)、ブラウザでは確かめられていません。
  • web のプロバイダは js-sdk-core の新しい版(clearOverlayControllers)が要ります。npm 公開と依存の引き上げまでは、公開済みの core に対してビルドできません。

関連 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 を想定しています。

clearOverlays() cleared the provider's own six controllers only, so
markers drawn through a StrategyMarkerController that an extension
registered (MarkerClusterGroup, MarkerRenderingSupport) stayed on the
map. It now goes through BaseMapViewController.clearOverlayControllers(),
which clears the same six in the same order and then every other
registered slotted controller.

Needs the js-sdk-core release that adds clearOverlayControllers()
(fix/clear-strategy); with the published ^0.3.x core this does not
compile.
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