如何使用topojson API进行简化?

3

我可以很容易地使用命令行和 -s 标志来简化使用 topojson,但我无法从 node 模块中找到如何进行简化的方法。

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

有人有任���见解吗?

1个回答

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接