我正在使用Fortune算法的Javascript實現來計算voronoi單元(https://github.com/gorhill/Javascript-Voronoi)。我的網站計算是地圖上的點(所以(lat,lng)
)。我首先做了投影(lat,lng) -> (x,y)
,然後我計算了voronoi單元,並以另一種方式做出了半邊的投影。
它工作正常,我使用傳單顯示結果,但我需要做更多的事情。如何合併相鄰的多邊形
每個站點我最初計算取決於一個ID,我重新分類由ID Voronoi單元和我最終,對於每個ID與標準數據結構中查找這樣的:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [[
[9.994812, 53.549487],
[10.046997, 53.598209],
[10.117721, 53.531737],
[9.994812, 53.549487]
]]
}
}, {
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [[
[10.000991, 53.50418],
[10.03807, 53.562539],
[9.926834, 53.551731],
[10.000991, 53.50418]
]]
}
}
]
};
一組多邊形(對於給定的ID,由voronoi單元的半邊製成)。
我需要合併的ID的多邊形,我打算用turf.merge()
,但我有拓撲錯誤
turf.min.js:13 Uncaught TopologyError: side location conflict
基於這個職位(http://lists.refractions.net/pipermail/jts-devel/2009-March/002939.html),我試圖從10輪的(lat,lng)
夫婦^ -14到10^-7但它並沒有真正奏效。 在尋找扭曲並嘗試去除它們之前,我打印了一些數據樣本,並且我知道自己是否使用了Fortune算法的良好數據。當我顯示所有多邊形的所有的ID,我有權利圖,但是當我顯示一個ID所有多邊形或一些多邊形爲一個ID我結束了不完整的圖:
的部分全圖
圖的部分爲一個ID
給定ID的兩個「多邊形」
有沒有人有一個想法如何合併共享至少一個共同頂點的多邊形?爲什麼會出現拓撲錯誤?
編輯:多邊形不是 「不完整」(我是用折線)
我也試過在一個更簡單的例子:
,還是把錯誤:
Uncaught TopologyError: side location conflict [ (44.8220601, -0.5869532) ]
所以它不是(或者至少不僅僅是)由於糾結
我用這個庫,但我並沒有合併任何單元格不幸所以幫不了你...... 你應該嘗試張貼這個問題作爲github repo上的一個錯誤,如果你設法在一個非常簡單的情況下重現它。 – deKajoo
謝謝,我在github回購上創建了一個bug。我遇到與turf.union相同的問題() – kwn
你試過惠普d3.js嗎? https://github.com/mbostock/d3/wiki/Geometry – cbertelegni