Skip to content

Template: clear registered strategy markers in clearOverlays() - #47

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() の後もクラスタのマーカーが地図に残っていました。

何を変えたか

react-for-template(雛形)の clearOverlays() を clearOverlayControllers() 経由にしました。雛形の conformance テストで checkClearOverlaysReachesExtensions() も回します(前の clearOverlays() では、拡張のマーカーコントローラが 0 回しか clear されず落ちます)。

js-sdk-core の同名 PR の変更が必要です。

検証

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

The template's clearOverlays() goes through
BaseMapViewController.clearOverlayControllers() like the providers, and
its conformance test now runs checkClearOverlaysReachesExtensions(),
which fails on the old clearOverlays() (extension marker controller
cleared 0 times) and passes now.

Needs the js-sdk-core change on fix/clear-strategy.
This was referenced Nov 8, 2026

This branch has not been deployed

No deployments
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