【发布时间】:2014-06-17 20:59:53
【问题描述】:
有没有办法从我的 topojson 文件中删除小岛?
我目前拥有属于西班牙和葡萄牙等国家/地区的岛屿,但我不想展示这些小岛屿。我试过 geojson.io 但删除这些岛屿会导致属于该国家的所有内容都被删除,因此包括欧洲大陆,这是我想要保留的唯一部分。
【问题讨论】:
-
您可能需要一个 GIS 程序,例如 QGIS。
有没有办法从我的 topojson 文件中删除小岛?
我目前拥有属于西班牙和葡萄牙等国家/地区的岛屿,但我不想展示这些小岛屿。我试过 geojson.io 但删除这些岛屿会导致属于该国家的所有内容都被删除,因此包括欧洲大陆,这是我想要保留的唯一部分。
【问题讨论】:
在文本编辑器中打开 topojson 地图文件。使用字符串 ']],[[' 将其拆分为新行。 然后找到要减少的 multiPolygon 对象。 记下此 MultiPolygon 中的弧数。 现在查看弧列表。 每条弧线都是多边形/多多边形的一小部分。每条弧线都有一个 ID,这是它们在文件中的顺序。 如果你计算它们,那么你可以看到你试图减少的 MultiPolygon 中使用了哪些弧。 通常,小岛/区域由非常小的弧(弧定义中点的长度)表示。 通过修改 Main MultiPolygon 中的弧 ID 列表,您可以将它们从地图中关闭。
【讨论】:
我可以使用这个 GeoJSON 在线工具来做到这一点。
我上传了我的 TopoJSON 文件,然后选择了我要删除的岛屿,然后单击“删除功能”。
之后,我将 JSON 文本复制回我的文件中。我必须确保保留文件的第一部分,以便它在代码中仍然有效:
{"type":"Topology","objects":{"states":{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},
我只粘贴了“几何”部分。然后它起作用了!
【讨论】: