Rbush和strtree前端簡單應用

2022-06-25 13:24:12 字數 1127 閱讀 3033

空間相交是gis中常用的功能,一般就是使用分析庫進行相交就可以了,但是多資料時這樣產生笛卡爾積計算效率低下,這時可以考慮使用索引,本文中要介紹的是r-tree的使用。

r樹是一棵平衡樹。樹上有兩類結點:葉子結點和非葉子結點。每乙個結點由若干個索引項構成。對於葉子結點,索引項形如(index,obj_id)。其中,index表示包圍空間資料物件的最小外接矩形mbr,obj_id標識乙個空間資料物件。對於乙個非葉子結點,它的索引項形如(index,child_pointer)。 child_pointer 指向該結點的子結點。index仍指乙個矩形區域,該矩形區域包圍了子結點上所有索引項mbr的最小矩形區域。

jsts的strtree建立,插入資料,查詢

let strtree=new jsts.index.strtree.strtree()

const extent=item.getextent()

strtree.insert(new jsts.geom.envelope(extent.xmin, extent.xmax, extent.ymin, extent.ymax), count)

let re=strtree.query(new jsts.geom.envelope(x, x+0.01, y, y+0.01))

rbush的建立插入資料查詢

const  tree = new rbush();

const extent=item.getextent()

const indexitem = ;

tree.insert(indexitem);

let extent=

let mydata=tree.search(extent,test);

兩個索引的效能比較,224條相同的資料查詢相同資料下rbush更高效一些

rbush search

strtree search

3.22ms

16.65ms

rbush中遞迴查詢相交的葉子節點或者包含節點部分

search(bbox) 

}node = nodestosearch.pop();

}return result;

}

前端路由和後端路由,前端渲染和後端渲染

vue router是前端路由,koa router是後端路由。定義 在單頁面應用,大部分頁面結構不變,只改變部分內容的使用 優點 使用者體驗好,不需要每次都從伺服器全部獲取,快速展現給使用者 缺點 使用瀏覽器的前進,後退鍵的時候會重新傳送請求,沒有合理地利用快取 單頁面無法記住之前滾動的位置,無法...

《前端》陣列和函式

陣列是一組有序的資料。作用是可以一次性儲存多個資料。陣列如何定義?1 通過 建構函式 來建立陣列 語法 var 陣列名 new array new 就是建立 array 就是建構函式。陣列的名字如果直接輸出,那麼直接就可以把陣列中的資料顯示出來,如果沒有資料,就看不到資料。2 通過字面量來建立陣列 ...

移動前端開發和 Web 前端開發的區別

普通pc端開發與移動端開發區別。普通pc端開發,我理解就是你拿電腦開啟的網頁都算。那麼移動端前端開發工程師,說白了就很好理解了,做手機網頁的前端開發工程師。這麼一比,是不是感覺,移動端開發簡單多了?pc,我們需要考慮什麼呢?有點開發經驗的同學都知道,ie6 11,firefox,chrome,saf...