Skip to content

Pick the marker drawn under the tap, label included, and size the info bubble by the icon's real extent - #3

Merged
wf9a5m75 merged 1 commit into
developfrom
feature/marker-label-position
Oct 23, 2026
Merged

wf9a5m75 merged 1 commit into
developfrom
feature/marker-label-position

Conversation

@wf9a5m75

Copy link
Copy Markdown
Contributor

概要

タップしたときに「指の下に描かれているマーカー」を選ぶようにしました。js-sdk-core の共通の規則(pickMarkerHit / preferMarkerHit)を使っています。

  1. タップ位置にアイコン(ラベル込み)が描かれているマーカーを優先します(手前のものが勝ちます)。近くに別のマーカーの先端があっても同じです。
  2. どのマーカーにも当たっていなければ、許容範囲内でアンカーが一番近いものを選びます。

これまでの判定には 2 つの問題がありました。

  • 最後の手段の判定: 「最寄りの 1 つ」だけを見ていたので、隣のピンの頭や、横に置いたラベルのタップが外れていた。
  • タイル化マーカー: 「全体で一番近いマーカーがタイル化されているとき」しか調べていなかった。

今は、通常マーカーとタイル化マーカーを同じ規則で比べます。

あわせて、吹き出しの位置計算を、アイコンの実寸(markerIconExtentPx)で行うようにしました。ラベルを横や上に置いたときに、吹き出しがずれないようにするためです。

依存

確認(develop 上)

  • develop の js-sdk-core にこの変更を当てた版に対して、npm run build が通りました。
  • 補足: js-sdk-react の既定ブランチ main は、develop の js-sdk-core に無い MapViewStyle を使っていて、それ単体ではビルドできません(今回の変更とは無関係の既存の状態です)。そのため、js-sdk-react には手元のビルド結果を使いました。
  • 作業ブランチの側で、MapLibre 上で実際にクリックして選び方を確かめています。

@wf9a5m75
wf9a5m75 merged commit a12404e into develop Oct 23, 2026
1 check passed
@wf9a5m75
wf9a5m75 deleted the feature/marker-label-position branch October 23, 2026 04:10
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