D3.js 将ONS映射与D3一起使用

D3.js 将ONS映射与D3一起使用,d3.js,geojson,topojson,D3.js,Geojson,Topojson,很抱歉,这可能是一个非常基本的问题,但我似乎无法理解 我想用D3.js绘制一些数据,我想用的地图形状是由英国国家统计局提供的。我设法让他们的geojson数据显示出来,但只要我尝试用缩放、转换、topojson做任何事情,我就彻底失败了 我已经经历了很多不同的方法,我认为是地图数据导致了这个问题。如果我在Mapshaper中打开形状文件,它看起来很完美。如果我导出为geo或topojson并重新导入,它看起来非常完美。如果我尝试在geojson导出上运行geo2svg,它会生成大量数据,但不可见

很抱歉,这可能是一个非常基本的问题,但我似乎无法理解

我想用D3.js绘制一些数据,我想用的地图形状是由英国国家统计局提供的。我设法让他们的geojson数据显示出来,但只要我尝试用缩放、转换、topojson做任何事情,我就彻底失败了

我已经经历了很多不同的方法,我认为是地图数据导致了这个问题。如果我在Mapshaper中打开形状文件,它看起来很完美。如果我导出为geo或topojson并重新导入,它看起来非常完美。如果我尝试在geojson导出上运行geo2svg,它会生成大量数据,但不可见。如果我尝试将原始形状文件导入mapstarter.com,它将生成一条平线。如果我把topojson放到D3V4边界示例中,我会得到一堆随机三角形

那么,有人能告诉我如何获得ONS映射数据,比如在d3示例中显示的数据,比如


谢谢

您链接到的数据已被投影。Mapshaper支持投影数据,但对投影数据使用d3.geoProjection在大多数情况下都不会显示数据。您需要确保数据以lat-long对显示,以便在d3.geoProjection中正确显示

幸运的是,在Mapshaper中,您可以重新投影数据。将shapefile的所有文件复制到mapshaper中,并在控制台中将投影更改为wgs84(取消投影数据):

该数据现在可以使用d3.0地质投影轻松显示和操作。下面是使用您引用的数据。还有一个屏幕截图:

最后:也可以显示投影数据,但这种情况不太常见

proj wgs84