2013-12-19 77 views
2

所以我沒有任何問題簡化使用topojson從命令行使用-s標誌,但是,我不知道如何從node模塊做到這一點。如何用topojson API簡化?

我看到topojson.simplify()方法,但我無法弄清楚它是如何工作的,因爲沒有文檔。

有沒有人有任何見解?

回答

1

通過查看topojson的簡化測試,我能夠弄清楚如何使用toposjson.simplify(),但我不能完全聲稱知道發生了什麼。你可以在the topojson github上看到測試。

基本上topojson.simplify需要一個拓撲輸入,並且有兩個可能的選項用於簡化,「保留比例」和「最小面積」,但您也可以傳遞座標系,即「笛卡爾」或「球形」,儘管可以在大多數情況下推斷。

例子:

output = topojson.simplify(topology,{"minimum-area": 2,"coordinate-system": "spherical"}); 
output =topojson.simplify(topology,{"retain-proportion: 2,"coordinate-system": "spherical"}); 

我真的不知道到底是什麼,你值傳遞到這些選項的含義,然而較高的值往往會產生更多的簡化。注意,保留比例通常在傳遞LineStrings時返回無效的拓撲,這可能是預期的。

此外,在topojson.topology中使用量化選項可用於創建更小,更簡單的輸出,並且可能是某些類似用例的最佳解決方案,並且在任何地方也沒有任何明確記錄的服務器API示例:

//very simplified, small output 
topojson.topology({routes: routesCollection},{"quantization":100}); 
//very unfiltered, large output 
topojson.topology({routes: routesCollection},{"quantization":1e8}); 

注意:默認量化是10000(1e4),所以小於10000的任何數值都會產生一個較小的輸出,反之亦然。