【问题标题】:How to simplify with topojson API?如何使用 topojson API 进行简化?
【发布时间】:2014-02-07 23:45:53
【问题描述】:

所以我在命令行中使用-s 标志来简化使用topojson 没有问题,但是,我无法从node 模块中弄清楚如何做到这一点。

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

有人有什么见解吗?

【问题讨论】:

    标签: topojson


    【解决方案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 时,retain ratio 通常会返回无效的拓扑,这可能符合预期。

    另外使用 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 的任何值都会产生较小的输出,反之亦然。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 2013-07-27
      • 2020-11-30
      相关资源
      最近更新 更多