空间数据在给定的坐标系中指定。此坐标系用于将坐标投影到空间中的特定点,例如地图画布。实际上有数百种不同的地理数据坐标系。造成这种情况的原因之一是地球在投影方面表现不佳 - 它不是一个完美的球体,不同的坐标系统往往在不同的地方效果最好(“最好的工作”指的是一旦你有多准确它们将一个点投射到地球表面上)。您可以找到更多信息 在维基百科上 。
定义坐标系和投影不一定困难或工作量很大,但需要在使用之前完成。这就是您无法使用开箱即用数据的原因 - 它使用D3不了解的坐标系统(英国国家电网)。所以你的选择是把它转换成 D3确实知道的一个 ,或在D3中实现您的坐标系。前者几乎总是更容易的方式。
命令 ogr2ogr output.shp input.shp -t_srs "+proj=longlat +ellps=WGS84 +no_defs +towgs84=0,0,0" 转换输入的shapefile(地理数据的文件格式) input.shp 进入Universal Transverse Mercator(UTM)WGS84格式(这是什么的 t_srs 字符串意味着更多 在维基百科上 )in output.shp ,不管输入中使用的坐标系。
ogr2ogr output.shp input.shp -t_srs "+proj=longlat +ellps=WGS84 +no_defs +towgs84=0,0,0"
input.shp
t_srs
output.shp
给出的目标坐标系参数 t_srs 可以是一个明确的定义(如上例所示),对着名坐标系的引用或包含该定义的文件。可以找到众所周知的坐标系列表 这里 例如。