gpt4 book ai didi

d3.js - 如何从 110m TopoJson 世界地图中删除一条线?

转载 作者:行者123 更新时间:2023-12-04 19:08:18 24 4
gpt4 key购买 nike

我使用 D3 和 110m world map 创建了一个 map 和墨卡托投影。我将 map 旋转了 -10 度,让它按照我想要的方式排列,然后设置描边和填充。完成此操作后,我注意到有一条线穿过楚科奇半岛(通常在阿拉斯加左侧发现的那一点)。

Chukchi Peninsula

查看 GitHub 和 another map made with this projection 上的渲染,似乎这条线实际上在数据中。

Rendering from GitHub
Another example

有没有办法摆脱它(编辑 TopoJSON,重新生成它的形状,或其他方式)?

最佳答案

现在,您需要手动修复数据,例如直接编辑 TopoJSON,或者将 Shapefile 转换为 GeoJSON,然后进行类似的编辑,或者使用 Shapefile 编辑器。

future ,topojson命令行工具应该能够通过将跨越 antimeridian (±180° longitude) 的多边形拼接在一起来解决这个问题。 ,删除当前可用的几何图形中经常出现的反子午线切割。
topojson 已经是这样了去除反子午线切割。然而,目前它只能去除单个环内的逆子午线切割,并且这里的俄罗斯多边形在穿过逆子午线的地方被分成两个(或更多)环; topojson还不够聪明,无法将在逆子午线上切割的多个环缝合成一个环。 (不过,您或许可以使用 topojson.mesh 来执行此操作。)

至于为什么会有逆子午线切割:很多地理工具不完全支持球坐标,所以通常会找到沿逆子午线切割多边形的数据以防止visual artifacts从投影时出现。 (您可以在我的 For Example talk 中阅读有关逆子午线切割的信息。) D3 和 topojson在点之间使用带有大弧插值的真实球面坐标,这样您就可以表示围绕极点或穿过反子午线而没有切割的多边形。但是,由于大多数现有数据都是在逆子午线上预先切割的,topojson必须去除切口以恢复真实的球面几何形状。

关于d3.js - 如何从 110m TopoJson 世界地图中删除一条线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19041457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com