最後一個 Event 我們來介紹在地圖上所做的一些「動作」~
這邊說的動作是指像是對地圖進行移動、拖拉、旋轉、放大縮小等等,像點擊、懸停那些是歸類在互動 (Interaction) 喔!
來看看常用到的 Movement 有哪些~
movestart
:地圖移動前,常與 jumpTo
搭配move
:地圖移動時的過渡期間,常與 flyTo
搭配moveend
:地圖移動後,常與 jumpTo
搭配dragstart
:拖動平移前drag
:拖動平移的過渡期間dragend
:拖動平移後zoomstart
:地圖從一個縮放級別轉換到另一個縮放級別之前,常與 flyTo
搭配zoom
:地圖從一個縮放級別轉換到另一個縮放級別的過渡期間,常與 flyTo
搭配zoomend
:地圖從一個縮放級別轉換到另一個縮放級別之後,常與 flyTo
搭配flyTo
跟 jumpTo
在下一篇會來做介紹,可以看到常用的動作主要是在移動 (move)、拖拉 (drag) 和縮放 (zoom) 的應用上,那如果對其他有興趣的可以到官網看一下~
一樣的,介紹完後來帶一個使用範例:
ex. 拖動 Marker 並且在放下之後跳出小視窗,顯示所在經緯度
const marker = new mapboxgl.Marker({
color: "pink",
draggable: true,
})
.setLngLat([121, 23.5])
.addTo(map);
marker.on('dragend', () => {
alert(`You put me down at:
Longitude: ${marker.getLngLat().lng}
Latitude: ${marker.getLngLat().lat}`
);
});
我們先把 marker
設為可拖移的 (draggable
: true
),並在 marker
加上觸發 Event 的條件 - 放下拖動的 marker
後顯示經緯度 (getLngLat
):
耶~完成!
關於 Event 的部分到這邊先告一個段落了,在寫的過程中突然發現我竟然忘記介紹 Camera !!!
於是愉快的決定好明天的主題啦哈哈 ( ˶ー̀֊ー́ )੭”