Sto semplicemente cercando di convertire un file .shp in un formato geoJSON usando:
ogr2ogr -f geoJSON output.json input.shp
Dopo aver eseguito il comando nulla sembra essere sbagliato. Ecco un estratto da 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 ],
...
Ma quando provo ad usare il file de JSON in d3 (http://d3js.org/) per disegnare poligoni SVG, l'output è semplicemente sbagliato. Dato che i file shp sono visualizzati correttamente in QGIS, penso che ci debba essere qualcosa di sbagliato nel modo in cui uso ogr2ogr
. L'SVG che ottengo non è completamente sbagliato ma sembra che ci sia un dettaglio che non riesco a trovare. Sembra che sia stato capovolto e in qualche modo distorto in due parti separate.
Ecco il javaScript che ho usato per generare lo svg:
//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);
Qualcuno ha un'idea di cosa è andato storto qui? Ho anche provato a convertire il file shp usando Qgis e myGeodata (http://converter.mygeodata.eu/vector). Ma nessuno dei due funziona come dovrebbe.
Sono molto nuovo di tutto questo materiale cartografico. Quindi sarei molto felice di ricevere qualche consiglio.
Grazie mille!