合并TopoJSON并仅保留新对象

时间:2018-08-13 12:01:02

标签: geojson topojson

我正在尝试使用TopoJSON的CLI按州合并美国国会区的形状,效果很好:

topomerge states=districts -k 'd.id.slice(0, 2)' < districts_topo.json > states_topo.json

(合并基于以状态码开头的ID字段)

但是,我执行此合并的真正原因是我想要一个较小的输出文件,其中删除了所有不必要的几何形状。有没有办法在TopoJSON中做到这一点?默认情况下,它也会复制现有的districts对象,从而创建一个比原始输入大的文件。即使我手动删除了districts对象,该文件仍然太大,大概是因为保留了未使用的弧。

仅使用合并的几何图形获取较小文件的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

要回答我自己的问题,我相信做到这一点的唯一方法是将有问题的对象转换为GeoJSON并返回...

const statesGeo = topojson.feature(statesTopo, statesTopo.objects.states)
const onlyStatesTopo = topojson.topology({ states : statesGeo })

...这似乎很奇怪,但适用于我的用例。

答案 1 :(得分:0)

我认为可以使用命令行topojson工具来做到这一点:

topomerge -f 'false' districts=districts | toposimplify -f

topomerge输出一个空的区几何,然后进行正则化将删除未引用的弧。