我只是想尝试使用以下方式将.shp文件转换为geoJSON格式:
ogr2ogr -f geoJSON output.json input.shp
执行命令后,似乎没有任何问题。这是output.json的摘录
{
"type": "FeatureCollection",
"features": [
{ "type": "Feature",
"properties": { "ID_0": 86, "ISO": "DEU", "NAME_0": "Germany", "ID_1": 1, "NAME_1": "Baden-Württemberg", "NL_NAME_1": null, "VARNAME_1": null, "TYPE_1": "Land", "ENGTYPE_1": "State" },
"geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 8.708400940398242, 47.715581894910606 ], [ 8.713716147005524, 47.701734382960055 ],
...
但是,当我尝试在d3(http://d3js.org/)中使用JSON文件绘制SVG多边形时,输出错误。由于shp文件在QGIS中正确显示,我认为我的使用方式一定有问题ogr2ogr
。我得到的SVG并不完全错误,但是似乎找不到一个细节。好像它已经被颠倒了,并且以某种方式扭曲成两个分离的部分。
这是我用来生成svg的javaScript:
//dimensions
var w = 2000;
var h = 2000;
var svg = d3.select("#chart").append("svg")
.attr("width", w)
.attr("height", h);
d3.json(
"http://localhost:8888/data/data.json",
function (json) {
var path = d3.geo.path();
svg.append("g")
.attr("class", "black")
.selectAll("path")
.data(json.features)
.enter()
.append("path")
.attr("d", path);
有人知道这里出了什么问题吗?我还尝试使用Qgis和myGeodata(http://converter.mygeodata.eu/vector)转换shp文件。但是他们俩都没有按应有的方式工作。
我对整个制图工作还是很陌生的。因此,我很高兴获得一些建议。
非常感谢!