在 D3 中使用 ONS 地图
Using ONS maps with D3
抱歉,这可能是一个非常基本的问题,但我似乎无法弄清楚。
我想使用 D3.js 映射一些数据,我想使用的地图形状由英国国家统计局提供。我设法让他们的 geojson 数据显示出来,但是当我尝试对缩放、转换、topojson 做任何事情时,我就完全失败了。
我已经尝试过很多很多不同的方法,我认为是地图数据导致了问题。如果我在 Mapshaper 中打开形状文件,它看起来很完美。如果我导出为 geo 或 topojson 并重新导入,它看起来很完美。如果我尝试在 geojson 导出上使用 运行 geo2svg,它会产生大量数据,但没有任何可见数据。如果我尝试将原始形状文件导入 mapstarter.com,它会生成一条扁平线。如果我将 topojson 放入 D3 v4 边界示例中,我最终会得到大量随机三角形。
所以,谁能告诉我如何获得 ONS 映射数据,例如 http://geoportal.statistics.gov.uk/datasets/1bc1e6a77cdd4b3a9a0458b64af1ade4_3 to display in a d3 example such as https://bl.ocks.org/iamkevinv/0a24e9126cd2fa6b283c6f2d774b69a2?
谢谢
您链接到的数据是投影的。 Mapshaper 支持投影数据,但使用 d3.geoProjection 和投影数据将导致在大多数情况下没有数据显示。您需要确保您的数据是经纬度对,以便使用 d3.geoProjection 正确显示。
幸运的是,在 Mapshaper 中,您可以重新投影数据。将 shapefile 的所有文件复制到 mapshaper 中,并在控制台中将投影更改为 wgs84(取消投影数据):
proj wgs84
现在可以使用 d3.geoProjection 轻松显示和操作此数据。这是 an example 使用您引用的数据。还有截图:
最后:也可以显示投影数据,但这不太常见。
抱歉,这可能是一个非常基本的问题,但我似乎无法弄清楚。
我想使用 D3.js 映射一些数据,我想使用的地图形状由英国国家统计局提供。我设法让他们的 geojson 数据显示出来,但是当我尝试对缩放、转换、topojson 做任何事情时,我就完全失败了。
我已经尝试过很多很多不同的方法,我认为是地图数据导致了问题。如果我在 Mapshaper 中打开形状文件,它看起来很完美。如果我导出为 geo 或 topojson 并重新导入,它看起来很完美。如果我尝试在 geojson 导出上使用 运行 geo2svg,它会产生大量数据,但没有任何可见数据。如果我尝试将原始形状文件导入 mapstarter.com,它会生成一条扁平线。如果我将 topojson 放入 D3 v4 边界示例中,我最终会得到大量随机三角形。
所以,谁能告诉我如何获得 ONS 映射数据,例如 http://geoportal.statistics.gov.uk/datasets/1bc1e6a77cdd4b3a9a0458b64af1ade4_3 to display in a d3 example such as https://bl.ocks.org/iamkevinv/0a24e9126cd2fa6b283c6f2d774b69a2?
谢谢
您链接到的数据是投影的。 Mapshaper 支持投影数据,但使用 d3.geoProjection 和投影数据将导致在大多数情况下没有数据显示。您需要确保您的数据是经纬度对,以便使用 d3.geoProjection 正确显示。
幸运的是,在 Mapshaper 中,您可以重新投影数据。将 shapefile 的所有文件复制到 mapshaper 中,并在控制台中将投影更改为 wgs84(取消投影数据):
proj wgs84
现在可以使用 d3.geoProjection 轻松显示和操作此数据。这是 an example 使用您引用的数据。还有截图:
最后:也可以显示投影数据,但这不太常见。