我正在尝试使用TopoJSON的CLI按州合并美国国会区的形状,效果很好:
topomerge states=districts -k 'd.id.slice(0, 2)' < districts_topo.json > states_topo.json
(合并基于以状态码开头的ID字段)
但是,我执行此合并的真正原因是我想要一个较小的输出文件,其中删除了所有不必要的几何形状。有没有办法在TopoJSON中做到这一点?默认情况下,它也会复制现有的districts
对象,从而创建一个比原始输入大的文件。即使我手动删除了districts
对象,该文件仍然太大,大概是因为保留了未使用的弧。
仅使用合并的几何图形获取较小文件的最佳方法是什么?
答案 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输出一个空的区几何,然后进行正则化将删除未引用的弧。