改变形状文件投影的可视化与D3
Changing shape file projection for visualisation with D3
我正在尝试制作一个可视化的英国地图,包括它所有的650个选区。我已经按照这个优秀的教程http://bost.ocks.org/mike/map/绘制了地图,它工作得很好。然而,我能找到的选区的唯一来源是地形测量局(自然地球有县,但没有选区)。问题是OS选区文件不包含相同类型的坐标(你可能会说,我不是GIS专家),他们使用横向墨卡托投影。以下是我试图转换的数据的.prj文件的属性:
PROJCS["British_National_Grid",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000],PARAMETER["False_Northing",-100000],PARAMETER["Central_Meridian",-2],PARAMETER["Scale_Factor",0.999601272],PARAMETER["Latitude_Of_Origin",49],UNIT["Meter",1]]
我的问题是:我如何将这个转换为D3中的投影?我已经安装了ogr2ogr和TopJson,但不确定这些是否可以做到,我找不到任何地方的信息,因为我没有足够的基础知识。
TIA
空间数据在给定的坐标系中指定。该坐标系统用于将坐标投影到空间中的特定点,例如地图画布。地理数据有数百种不同的坐标系统。其中一个原因是地球在投影方面表现不佳——它不是一个完美的球体,不同的坐标系统往往在不同的地方效果最好("最佳效果"指的是一旦你将一个点投射到地球表面上,它们的精度有多高)。你可以在维基百科上找到更多的信息。
定义一个坐标系统和投影并不一定是困难的或很多工作,但它需要在使用之前完成。这就是你无法使用开箱即用数据的原因——它使用D3不知道的坐标系统(英国国家电网)。所以你的选择是将其转换成D3所知道的,或者在D3中执行你的坐标系统。前者几乎总是更容易的方法。
命令ogr2ogr output.shp input.shp -t_srs "+proj=longlat +ellps=WGS84 +no_defs +towgs84=0,0,0"
将您输入的shapefile(地理数据的文件格式)input.shp
转换为output.shp
中的通用横向墨卡托(UTM) WGS84格式(这就是t_srs
字符串的含义,更多内容在维基百科上),无论输入中使用的坐标系如何。
给t_srs
的目标坐标系统参数可以是一个显式的定义(如上面的例子),对已知坐标系统的引用或包含该定义的文件。如:
- 使用 d3 可视化快速射击的“点击”
- 为 D3 可视化创建平均 Y 线
- D3 Javascript可视化巨大XML文件的性能
- 如何获取浏览器's”;背面“;按钮以清除d3.js可视化的先前状态
- android 2.3上的d3.js可视化
- 我正在尝试用D3可视化我的json对象.我希望日期是x轴,y是销售额.数值存储为字符串
- 使用D3.js加载用于可视化的本地数据
- 将 d3.parset 可视化效果旋转 90 度(使可视化效果变为水平而不是垂直)
- 使用 QGIS 和 D3 可视化自定义地图.js会受到投影的损害
- 使用 d3.js 可视化数据组的数据技术
- D3.js 和来自 CSV 文件图形宽度的数据可视化
- 基于 d3.js 的自定义可视化出现问题
- 如何保存调整后的 d3.js可视化效果
- 无法在 d3 力布局中可视化节点
- 无法在圆环图-D3中可视化标签
- d3:如何可视化一个简单的二维矩阵
- D3中的Y轴标记和数据可视化
- d3.js索引页可视化示例效果
- 捕获D3库创建的可视化并将状态存储在DB中
- 使 d3.js 可视化布局响应的最佳方法是什么?