3

topojson所以我使用标志从命令行简化使用没有问题-s,但是,我不知道如何从node模块中做到这一点。

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

有没有人有任何见解?

4

1 回答 1

2

通过查看 topojson 的简化测试,我能够弄清楚如何使用 toposjson.simplify(),但我不能完全声称知道发生了什么。您可以在 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 的任何值都会产生较小的输出,反之亦然。

于 2014-02-07T15:25:54.617 回答