Ich versuche einfach, eine .shp-Datei in ein geoJSON-Format zu konvertieren:
ogr2ogr -f geoJSON output.json input.shp
Nach dem Ausführen des Befehls scheint nichts mehr zu stimmen. Hier ist ein Auszug aus der 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 ],
...
Aber wenn ich versuche, die JSON-Datei in d3 (http://d3js.org/) zu verwenden, um SVG-Polygone zu zeichnen, ist die Ausgabe einfach falsch. Da die shp-Dateien in QGIS korrekt angezeigt werden, muss meines Erachtens etwas mit der Art und Weise, wie ich sie verwende, nicht stimmen ogr2ogr
. Die SVG, die ich bekomme, ist nicht ganz falsch, aber es scheint ein Detail zu geben, das ich nicht finden kann. Es scheint, als wäre es auf den Kopf gestellt und irgendwie in zwei getrennte Teile verzerrt worden.
Hier ist das JavaScript, mit dem ich das SVG generiert habe:
//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);
Hat jemand eine Idee was hier schief gelaufen ist? Ich habe auch versucht, die shp-Datei mit Qgis und myGeodata (http://converter.mygeodata.eu/vector) zu konvertieren. Aber keiner von ihnen arbeitet so, wie sie sollten.
Ich bin sehr neu in diesem ganzen Kartografie-Zeug. Daher würde ich mich sehr über einen Rat freuen.
Vielen Dank!