空間相交是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...