我使用带有110m world map的D3和mercator投影创建了一张地图。我将地图旋转了-10度以使其按照我想要的方式排列,然后设置笔划和填充。在这之后,我注意到楚科奇半岛有一条线(经常在阿拉斯加左边找到的那条线)。
在GitHub和another map made with this projection上查看渲染,看起来这条线实际上在数据中。
有没有办法摆脱它(编辑TopoJSON,重新生成形状或其他方法)?
答案 0 :(得分:4)
目前,您需要手动修复数据,比如直接编辑TopoJSON,或者将Shapefile转换为GeoJSON,然后进行类似的编辑,或者使用Shapefile编辑器。
将来,topojson
命令行工具应该能够通过将跨越antimeridian (±180° longitude)的多边形拼接在一起来解决这个问题,从而删除当前可用几何体中经常出现的antimeridian切割
情况已经是topojson
删除了抗癫痫切割的情况。然而,目前它只能在单个环中去除反默认切割,这里俄罗斯多边形已被分成两个(或更多)环,在那里它穿过反子弹; topojson
还不够智能,无法将在antimeridian处切割的多圈环缝合成一个环。 (但是,您可以使用topojson.mesh来执行此操作。)
至于为何为什么首先出现了反射的切割:许多地理工具并不完全支持球面坐标,所以通常会找到沿着反射数据切割多边形的数据,以防止在投影时出现visual artifacts 。 (你可以在我的For Example talk中读到有关反射击切割的信息。)D3和topojson
使用真正的球面坐标和点之间的大弧度插值,这样你就可以表示围绕极点或穿过反射线的多边形而没有切割。但是,由于大多数现有数据都是在antimeridian中预先准备好的,topojson
必须删除切割以恢复真正的球形几何体。