2013-01-05 33 views
2

我正在嘗試爲一組緯度/經度點生成一個Voronoi圖。爲什麼我會得到不正確的Voronoi圖?

var points = [["-87.63374","41.878723"],["-87.680622","41.829353"],["-87.631739","41.8768"],["-87.626149","41.884431"]] ; 
var boundingRegion = d3.geom.polygon([ 
    [-88, 41.7], 
    [-88, 42.3], 
    [-87.5, 42.3], 
    [-87.5, 41.7] 
    ]); 

var voronoi = d3.geom.voronoi(points).map(function(cell) { 
    return boundingRegion.clip(cell); 
}); 

document.write("<pre>"+JSON.stringify(voronoi, null, ' ')+"</pre>");​ 

我有一個的jsfiddle這裏是基本的例子:

http://jsfiddle.net/ZzjpC/2/

我把4個點,並通過使用一個簡單的矩形裁剪他們。

這些點是這樣的,我應該看到每個最終的Voronoi區域至少有一個剪切頂點......第一個單獨不符合。

當您在Google地圖上繪製它們時,多邊形相交併且完全混亂。

如果你看看http://jsfiddle.net/ZzjpC/3/,最後一點已被刪除,一切看起來都很好。

所以,這裏是我的問題:是否有一些錯誤,導致Voronoi圖生成失敗?或者這是一個D3錯誤,我應該告訴那些人?

回答

1

原來問題出在於我的Voronoi網站(points)是字符串而不是浮動數組是導致問題的原因。我的猜測是,有一個額外的地方是作爲一個字符串連接執行的,而這又破壞了一些東西。

points轉換爲浮點而不是字符串解決了問題。

相關問題