mapbox-gl實(shí)戰(zhàn)教程:圖標(biāo)選中狀態(tài)實(shí)現(xiàn)
2023-05-30 16:20 作者:地理信息技術(shù)雜談 | 我要投稿
在地圖開(kāi)發(fā)中,定位到一個(gè)圖標(biāo),或者是鼠標(biāo)點(diǎn)擊圖標(biāo),讓圖標(biāo)變換成選中狀態(tài),從而達(dá)到突出顯示的狀態(tài)。
mapbox-gl在地圖上加載少量圖標(biāo)時(shí),可以使用創(chuàng)建marker,或者是symbol圖層方式,在圖標(biāo)較多的情況,一般都使用symbol圖層,否則會(huì)出現(xiàn)卡頓的現(xiàn)象。
以marker方式實(shí)現(xiàn)的圖標(biāo),在選中時(shí),只需要修改html的樣式即可。
本文詳細(xì)講一下,如何在symbol圖層中,實(shí)現(xiàn)圖標(biāo)的選中狀態(tài)。
1、使用圖層(filter)過(guò)濾的方式:
在創(chuàng)建symbol圖層的時(shí)候,同時(shí)創(chuàng)建一個(gè)圖標(biāo)選中狀態(tài)的圖層,默認(rèn)不顯示高亮圖層的數(shù)據(jù);
在定位或者鼠標(biāo)點(diǎn)擊到圖標(biāo)時(shí),將過(guò)濾屬性的唯一標(biāo)識(shí),寫(xiě)到filter中,讓基本圖層中的圖標(biāo)不顯示,高亮圖層里圖標(biāo)進(jìn)行顯示;
2、設(shè)置圖層的屬性,更換圖標(biāo)值:
通過(guò)控制圖標(biāo)的屬性值,讓選中的圖標(biāo)顯示為高亮的圖標(biāo),其他圖標(biāo)顯示跟原來(lái)一樣,這里使用到setLayoutProperty方法;
標(biāo)簽: