使用mapbox的小伙伴們可能都遇到過這個問題,就是當地圖上有兩個圖層,一個面圖層一個點圖層,二者相重合的時候。假設我們想點擊點位彈窗展示一些內容,也想點擊面圖層的時候彈窗展示一些內容,這時候一個有意思的問題就產生了,就是點擊點位彈窗的時候面圖層對應的彈窗也會彈出來,就像這樣(為了大家看的清楚我將點的彈窗偏移一些)
因為按照mapbox官方的寫法,我們會這樣寫代碼:
map.on("click", "point", (e) => {const dom = "<div>我是點彈窗</div>";const feature = e.features[0];const popup = new mapboxgl.Popup({ offset: [30, 30] }).setHTML(dom).setLngLat(feature.geometry.coordinates).addTo(map);});map.on("click", "polygon", (e) => {const dom = "<div>我是面彈窗</div>";const popup = new mapboxgl.Popup().setHTML(dom).setLngLat([e