新聞中心
利用mapboxgl怎么實現(xiàn)一個帶箭頭的軌跡線效果?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
添加箭頭核心代碼如下,只需在配置layout
中添加symbol-placement
和symbol-spacing
屬性即可:
// 添加箭頭圖層 function addArrowlayer() { map.addLayer({ 'id': 'arrowLayer', 'type': 'symbol', 'source': { 'type': 'geojson', 'data': routeGeoJson //軌跡geojson格式數(shù)據(jù) }, 'layout': { 'symbol-placement': 'line', 'symbol-spacing': 50, // 圖標間隔,默認為250 'icon-image': 'arrowIcon', //箭頭圖標 'icon-size': 0.5 } }); }
然而,為實現(xiàn)上述效果,確走了不少彎路。曾嘗試集成Leaflet.PolylineDecorator
插件核心算法,通過對線的處理,計算每個箭頭所在位置以及角度,也能實現(xiàn)上述效果。不過該方案在地圖傾斜旋轉(zhuǎn)后,有時會有箭頭偏移的bug。
在解決此bug過程中,不經(jīng)意間看到道路標注都是沿道路線方向,突然有了新的靈感。
重新查看mapboxgl API
,發(fā)現(xiàn)將layout
中的symbol-placement
設(shè)置為line
,即可實現(xiàn)沿著線的方向繪制箭頭。
注意:
1.我所用圖標為右側(cè)方向箭頭,結(jié)果與實際方向相符,如果圖標為向上箭頭,需修改icon-rotate
為90。
2.只把symbol-placement
設(shè)置為line
,箭頭間距過于稀疏;需要設(shè)置下symbol-spacing
參數(shù),symbol-spacing
默認值為250,修改為50即可實現(xiàn)文章首頁圖片效果。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。
當前題目:利用mapboxgl怎么實現(xiàn)一個帶箭頭的軌跡線效果-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://fisionsoft.com.cn/article/dcegij.html