這篇文章主要介紹了如何實(shí)現(xiàn)支持Canvas的Leaflet.Path.DashFlow動(dòng)態(tài)流向線,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
目前創(chuàng)新互聯(lián)已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、遵化網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
通過對leaflet以及其插件的學(xué)習(xí),我們了解到使用Leaflet.Path.DashFlow
插件可實(shí)現(xiàn)軌跡動(dòng)態(tài)展示、管道流向動(dòng)態(tài)展示、河流流向動(dòng)態(tài)展示等,達(dá)到增強(qiáng)可視化展示的效果。該插件使用方式非常簡單,只需在正常添加線的時(shí)候,加入dashArray
和dashSpeed
參數(shù)即可。核心代碼如下:
注意,在
dashSpeed
為負(fù)時(shí),線是正向流動(dòng)。
效果如下:
但是在使用的過程中,發(fā)現(xiàn)該插件有個(gè)弊端,就是當(dāng)使用Canvas
方式繪制地圖(初始化地圖preferCanvas
參數(shù)為true
)時(shí),動(dòng)態(tài)效果不可用。那要如何解決這個(gè)問題呢?
通過對Leaflet.Path.DashFlow
以及leaflet
源碼的研究,發(fā)現(xiàn)動(dòng)態(tài)線的效果主要是通過動(dòng)態(tài)刷新dashOffset
參數(shù)的值,以改變線的樣式來實(shí)現(xiàn)。
L.SVG
在_updateStyle
的時(shí)候,更新了dashOffset
參數(shù),但是L.Canvas
在_updateStyle
時(shí),并沒有更新dashOffset
參數(shù)。這即是在Canvas
方式繪制時(shí)沒有動(dòng)態(tài)效果的原因。
L.SVG:
L.Canvas:
由此,我們找到了解決思路,即在L.Canvas
的_updateStyle
方法中,參考L.SVG
的處理方式,添加對dashOffset
參數(shù)的控制。核心代碼如下:
為方便使用,我們將L.Path.DashFlow
插件重新封裝,大家引用這個(gè)插件,即可在Canvas
和SVG
兩種方式下使用此插件。
使用Leaflet.Path.DashFlow
插件可實(shí)現(xiàn)軌跡動(dòng)態(tài)展示、管道流向動(dòng)態(tài)展示等動(dòng)態(tài)線效果。
默認(rèn)插件在使用Canvas
方式繪制地圖(初始化地圖preferCanvas
參數(shù)為true
)時(shí),動(dòng)態(tài)效果不可用。
通過修改L.Canvas
中代碼,即可在Canvas
方式時(shí)實(shí)現(xiàn)動(dòng)態(tài)線效果。
將L.Path.DashFlow
插件重新封裝,引用插件,即可在Canvas
和SVG
兩種方式下實(shí)現(xiàn)動(dòng)態(tài)線效果。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何實(shí)現(xiàn)支持Canvas的Leaflet.Path.DashFlow動(dòng)態(tài)流向線”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
網(wǎng)站欄目:如何實(shí)現(xiàn)支持Canvas的Leaflet.Path.DashFlow動(dòng)態(tài)流向線
文章起源:http://chinadenli.net/article12/pehpdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、響應(yīng)式網(wǎng)站、App設(shè)計(jì)、微信小程序、網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)