????軌跡回放是webgis中的常見(jiàn)功能择卦,是一種被客戶(hù)喜聞樂(lè)見(jiàn)的GIS動(dòng)畫(huà)芭逝。
????動(dòng)畫(huà)是一種短時(shí)間內(nèi)不停重繪達(dá)到不斷運(yùn)動(dòng)的效果粗截。本文中軌跡回放就是事先計(jì)算好所需要的點(diǎn)韭邓,后面再進(jìn)行播放。
????整體的思路也不復(fù)雜虽缕,設(shè)定總共有一千個(gè)點(diǎn)插入始藕,計(jì)算出來(lái)每個(gè)點(diǎn)間隔的步長(zhǎng),我們只要往大于步長(zhǎng)的每條線(xiàn)段中插入需要點(diǎn)就好,小于等于步長(zhǎng)的線(xiàn)段則取用它的尾部節(jié)點(diǎn)伍派。
只有兩點(diǎn)的線(xiàn)段進(jìn)行增密就很簡(jiǎn)單了江耀,求出線(xiàn)段長(zhǎng)度除以步長(zhǎng)的倍數(shù),用倍數(shù)進(jìn)行循環(huán)诉植,使用turf.along計(jì)算出每次要插入的點(diǎn)祥国,當(dāng)線(xiàn)段不能整除步長(zhǎng)時(shí),需要將線(xiàn)段的最后一點(diǎn)插入增密線(xiàn)段中晾腔。(下圖中小箭頭就是增密的點(diǎn))
????效果圖如下,在線(xiàn)地址:https://github.com/tpolong/route
ps:寫(xiě)個(gè)小例子踩中turf.js中兩個(gè)坑還是有點(diǎn)厲害舌稀,不說(shuō)了,我去買(mǎi)彩票了
ps2:可以使用turf.linechunk或者turf.lineSliceAlong進(jìn)行增密灼擂,當(dāng)然turf.linechunk這個(gè)函數(shù)還是有坑的壁查,慎用