Simplemente estoy tratando de convertir un archivo .shp a un formato geoJSON usando:
ogr2ogr -f geoJSON output.json input.shp
Después de ejecutar el comando, nada parece estar mal. Aquí hay un extracto de la salida.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 ],
...
Pero cuando intento usar el archivo de JSON en d3 (http://d3js.org/) para dibujar polígonos SVG, el resultado es simplemente incorrecto. Dado que los archivos shp se muestran correctamente en QGIS, creo que tiene que haber algo mal con la forma en que lo uso ogr2ogr
. El SVG que obtengo no está completamente equivocado, pero parece que hay un detalle que no puedo encontrar. Parece que se ha invertido y de alguna manera distorsionado en dos partes separadas.
Aquí está el javaScript que utilicé para generar el 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);
¿Alguien tiene una idea de lo que salió mal aquí? También intenté convertir el archivo shp usando Qgis y myGeodata (http://converter.mygeodata.eu/vector). Pero ninguno de los dos trabaja como debería.
Soy muy nuevo en todo esto de la cartografía. Así que estaría muy feliz de recibir algunos consejos.
¡Muchas gracias!