簡體   English   中英

如何最好地綁定到 webapp 的 mapbox-gl 更新代碼中?

[英]How to best tie into a webapp's mapbox-gl update code?

背景

我正在編寫一個瀏覽器擴展,它在 komoot.com/plan 的map上繪制。 目前我通過在現有的canvas之上放置一個canvas來做到這一點。

這很好用,但它是 static,並且當用戶移動 map 或放大它或網站將特定位置聚焦在 map 上時,它還沒有反應。

我如何最好地融入這個 map 更新的事件循環?

考慮的方法

  1. 我可以模仿/重新實現 komoot 如何處理用戶輸入,但這聽起來脆弱、不可靠且混亂。 我會通過為鼠標按鈕事件和 cursor 移動等添加監聽器來做到這一點。

  2. 頁面的 URL 包含緯度和經度坐標以及縮放級別,例如https://www.komoot.com/plan/@49.9535480,5.3956956,11.345z 它在 map 更改更改。 我假設有一種方法可以通知 URL 中的更改。如果是這樣,我可以動態更新我的canvas

    • 這仍然需要對頁面內部結構進行某種程度的模仿。 但是,比選項 1 少得多。
    • 這樣做我只能在 animation 完成后更新我的 canvas。 這不是一個交易破壞者,但理想情況下,我想將它與 map 本身一起逐幀更新,以獲得更令人愉悅的用戶體驗。

額外細節

截屏

擴展截圖

您似乎沒有提到明顯的方法:使用move事件:

map.on('move',e => {...
   // get center with map.getCenter()
});

但是你到底想做什么還不是很清楚,所以很難給出更具體的建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM