GIS開(kāi)發(fā):胖箭頭的畫(huà)法
2022-07-18 08:59 作者:地理信息技術(shù)雜談 | 我要投稿
之前分享過(guò)在兩類(lèi)地圖上的箭頭畫(huà)法,效果是單線,頂部加了箭頭的效果,這里分享一下在地圖上胖箭頭的畫(huà)法。
胖箭頭是在箭頭的首尾兩點(diǎn)上,橫向進(jìn)行了擴(kuò)充,最后以面狀圖層的形式畫(huà)出來(lái)。

胖箭頭根據(jù)首尾兩點(diǎn)生成面的方式:
--將首尾兩點(diǎn)連接成直線,計(jì)算直線在地圖中的北方向夾角,可以使用turf.js進(jìn)行計(jì)算;
--計(jì)算和首尾直線垂直的6個(gè)點(diǎn),分別是箭頭尾部的兩個(gè)點(diǎn)和箭頭頭部的4個(gè)樣式點(diǎn),turf.js中有方法計(jì)算這6個(gè)點(diǎn),可以參見(jiàn)文章開(kāi)始的簡(jiǎn)單箭頭中的方法;

--將以上的6個(gè)點(diǎn)按照順序連接起來(lái),形成面狀的效果,就能在地圖上達(dá)到以下的胖箭頭形狀;

--在尾部的附近取一個(gè)點(diǎn),重新進(jìn)行面的連接,就能夠?qū)崿F(xiàn)箭頭的燕尾效果,參見(jiàn)下圖綠色線的效果;

地圖上標(biāo)繪效果,都能按照一定的算法進(jìn)行計(jì)算,只不過(guò)按照經(jīng)緯度的單位,需要進(jìn)行一定的轉(zhuǎn)換,使用一些開(kāi)源的類(lèi)庫(kù),能夠解決不少問(wèn)題。
標(biāo)簽: