D3JSON路径和SVG

D3JSON路径和SVG,json,d3.js,path,maps,Json,D3.js,Path,Maps,经过一番努力,我终于拼凑出一个JSON文件,可以为我画出伦敦及其自治区的地图。在这儿 除了边界不是完美的这一事实之外,地图看起来还可以,但存在一个问题,即一些(但不是全部)路径显然占据了整个SVG空间。因此,当我在DOM中检查它们时,我最终选择了整个区域。同样地,如果我用填充物给它们上色,我会把整个空间变成那种颜色 我注意到这种情况往往发生在较大的行政区,较小的行政区可以通过DOM进行选择。这并不总是正确的,但是D3在这里可以处理的坐标数有限制吗?还是代码有其他问题? 如果有人想检查它,JSON

经过一番努力,我终于拼凑出一个JSON文件,可以为我画出伦敦及其自治区的地图。在这儿

除了边界不是完美的这一事实之外,地图看起来还可以,但存在一个问题,即一些(但不是全部)路径显然占据了整个SVG空间。因此,当我在DOM中检查它们时,我最终选择了整个区域。同样地,如果我用填充物给它们上色,我会把整个空间变成那种颜色

我注意到这种情况往往发生在较大的行政区,较小的行政区可以通过DOM进行选择。这并不总是正确的,但是D3在这里可以处理的坐标数有限制吗?还是代码有其他问题?
如果有人想检查它,JSON就在这里。伦敦市是一个“好”的自治市,哈克尼和塔哈姆雷特也是。大多数其他的,如巴尼特,吠叫,是“坏的”,因为他们填补了SVG

就d3映射函数而言,有些路径是“由内而外”的。使其正确映射

逆时针循环被解释为较大形状内的“孔”,其边界假定在地图之外。因此,当您在形状中着色时,除路径中的区域外,所有对象都会着色


文档建议运行GeoJSON文件,以在正确的结构中重新排列顶点。当然,您也可以编写自己的实用程序来颠倒顺序,然后手动检查并找出哪些是错误的。

太好了,谢谢。相当可耻的是,我不明白我应该如何处理你链接到的那个实用程序——是gdal吗?因为我已经试着去了解那些东西了,我太深了,这不是真的对不起,我没有仔细看就复制了这个链接。看起来它不是一个独立的实用程序,而是PostGIS中的一个函数。也许可以试着来回转换?(需要node.js)。或者只需找出哪些形状是由内而外的,并用相同的数组替换它们的坐标数组
.reverse()
'd。然后字符串化JSON,将其写入屏幕,复制、粘贴并保存。如果您不是地图软件专家(我当然不是),那么对于这样的小数据集,这可能是最简单的。很酷,非常感谢。我真的迫不及待地想把这些地图整理出来,然后我就可以重用它们了。GIS真的是一个完全不同的世界……好吧,我似乎终于有了脚本来测试和反转坐标字符串。但它正在逆转一切——包括那些没有在地图上奇怪显示的形状。试一试:它应该适用于任何数据集,其中每个特征都是单个多边形,没有孔或岛。