如何使用topojson API进行简化?

时间:2013-12-19 23:49:24

标签: topojson

所以我使用topojson标志从命令行简化-s是没有问题的,但是,我无法弄清楚如何从node模块中进行操作。< / p>

我看到了topojson.simplify()方法,但由于没有文档,我无法弄清楚它是如何工作的。

有没有人有任何见解?

1 个答案:

答案 0 :(得分:1)

通过查看topojson的简化测试,我能够弄清楚如何使用toposjson.simplify(),但我不能完全声称知道发生了什么。您可以在the topojson github上看到测试。

基本上topojson.simplify采用拓扑输入并有2个可能的简化选项,“保留比例”和“最小区域”,你也可以传递坐标系,又名“笛卡儿”或“球形”,尽管它在大多数情况下都可以推断出来。

的示例:

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的输出都会产生较小的输出,反之亦然。