Closed tibs245 closed 6 years ago
Bonjour !
Pour ce qui est de la commande mapshaper que j'utilise, la voici, mais elle permet uniquement de convertir un fichier shp quelconque (input.shp) au format geojson dans un nouveau fichier (output.json).
mapshaper -i input.shp snap -proj wgs84 -simplify 25% weighted keep-shapes -o format=geojson precision=0.000001 output.json
J'applique au passage quelques optimisations, je te laisse voir la doc officielle de mapshaper pour le détail.
Je sais qu'il existe également des options dans mapshaper qui permettent de "trier" les features en fonction de leurs attributs pour générer plusieurs fichiers au lieu d'un seul (notamment l'option "-split" il me semble), mais je ne les utilise pas en général, elles sont trop limitées par rapport à mes besoins. Une fois que j'ai les données en geojson, je les croise avec celles de l'insee, je les injecte dans une base de donnée qui contient d'autres informations dont j'ai souvent besoin et je requête ensuite cette base pour générer un ou plusieurs fichiers geojson en fonction de mes besoins pour un projet donné.
Merci beaucoup @gregoiredavid ! Ta réponse m'a beaucoup aider.
Pour les prochains qui voie cette issue je vous donne mon choix de procédure que j'ai suivis si vous avez besoin de régénérer les cartes d'une manière différente ou plus à jours.
J'ai télécharger les données des cartes ici : http://professionnels.ign.fr/adminexpress ( Comme @gregoiredavid me l'a conseillé ici : https://github.com/gregoiredavid/france-geojson/issues/21 )
J'ai été sur : http://mapshaper.org/
Puis j'ai uploads tout les fichiers communes mis à dispositions dans l'archive de admin express pour les données
Ensuite j'ai mis mes paramètre voulu ( Dans mon cas j'ai réduis au maximum la qualité )
Ensuite j'ai cliqué sur console afin d'exporté avec la commande suivante : mapshaper -proj wgs84 -simplify 0% weighted keep-shapes -o format=geojson precision=0.000001 output.json
Cela m'a rendu un fichier json exploitable avec les donnée suivante :
{"ID":"BDCSURCO0000000009586213",
"NOM_COM":"Lachapelle-Saint-Pierre",
"NOM_COM_M":"LACHAPELLE-SAINT-PIERRE",
"INSEE_COM":"60334","STATUT":"Commune simple",
"POPULATION":902,
"INSEE_ARR":"1",
"NOM_DEP":"OISE",
"INSEE_DEP":"60",
"NOM_REG":"HAUTS-DE-FRANCE",
"INSEE_REG":"32",
"CODE_EPCI":"200067973"}
Etant avec du matériel limité et un système Windows malgré moi, ( d'où mon besoin de baisser encore la qualité ), j'ai dût séparé les fichiers par département. Pour cela :
Get-Content '.\output0118.json' | %{
if ($_ -match '"INSEE_DEP":"(?<DEP>\d{1,3}[A-B]?)"') {
$file = 'communes-' + $Matches.DEP + '.json';
if (!(Test-Path $file)) {
'{"type":"FeatureCollection", "features": ['> $file };
$commune = $_ -replace '"properties":\{.+"INSEE_COM":(".+"),"STATUT.+[^\}\]]\}','"properties":{"code":$1}';
$commune >> $file }}
Get-ChildItem communes*.json | foreach { $content = Get-Content $_ -raw; if ($content[$content.length-3] -eq "," ) { $content = $content.Substring(0,$content.length-3) }; $content += ']}'; $content > $_}
Puis si vous souhaitez changer l'encodage en UTF-8 sans BOM utiliser :
Get-ChildItem communes* | foreach { $content=Get-Content $_.Name; $content | Out-FileUtf8NoBom $_.Name }
Avec le script suivant a importer avant : https://gist.github.com/mklement0/8689b9b5123a9ba11df7214f82a673be Dsl pour la lisibilité du code. Je ne compté pas le maintenir
Merci encore @gregoiredavid notament pour ta réactivité lorsqu'on a une question :)
Salut @gregoiredavid ,
J'ai effectivement télécharger les données, sur admin express comme tu me l'as conseillé sur l'ancienne issue. Pourrais-tu me donner aussi la commande qui permet d'exporter les communes de mapshaper par régions ?
Je pense que ce serait intéréssant de marquer les commandes de mapshaper utiliser pour la générations des fichiers. Pourquoi pas dans un tableau dans un fichier markdown a part.
Merci beaucoup d'avance si tu les as !
Bonne journée et bon week-end