J'essaie simplement de convertir un fichier .shp au format geoJSON en utilisant:
ogr2ogr -f geoJSON output.json input.shp
Après avoir exécuté la commande, rien ne semble aller mal. Voici un extrait du fichier 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 ],
...
Mais lorsque j'essaie d'utiliser le fichier de JSON dans d3 (http://d3js.org/) pour dessiner des polygones SVG, la sortie est tout simplement fausse. Étant donné que les fichiers shp s'affichent correctement dans QGIS, je pense qu'il doit y avoir un problème avec la façon dont j'utilise ogr2ogr
. Le SVG que j'obtiens n'est pas complètement faux, mais il semble y avoir un détail que je ne trouve pas. Il semble qu'il ait été renversé et déformé d'une manière ou d'une autre en deux parties séparées.
Voici le javaScript que j'ai utilisé pour générer le 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);
Quelqu'un at-il une idée de ce qui s'est mal passé ici? J'ai également essayé de convertir le fichier shp en utilisant Qgis et myGeodata (http://converter.mygeodata.eu/vector). Mais ni l'un ni l'autre ne fonctionnent comme ils le devraient.
Je suis très nouveau dans ce domaine de la cartographie. Je serais donc très heureux d'obtenir des conseils.
Merci beaucoup!
avez-vous essayé de spécifier le code EPSG correct pour votre fichier de formes et votre sortie GeoJSON? Par exemple:
ogr2ogr -f GeoJSON -s_srs EPSG:.... -t_srs EPSG:.... output.json input.shp
la source
Vous avez raison, pour une carte de l'Allemagne, vous devez modifier la projection par défaut en fonction des données américaines. Il est centré quelque part au Kansas et pour une carte de taille 960xsomething.
Bien entendu, les paramètres corrects dépendent également des dimensions de votre carte.
Si vous souhaitez utiliser la projection d3.geo.albers ( idéale pour les cartes coroplètes ) voici mes paramètres:
la source