2024-10-16 15:12:35 +02:00
|
|
|
import json
|
|
|
|
import sys
|
|
|
|
import json
|
2024-11-26 22:35:59 +01:00
|
|
|
# examiner un jeu de données geojson, et proposer des tags à mettre dans une config
|
|
|
|
# comme celle ci mappings/converters/configIRVE.ts
|
|
|
|
#
|
|
|
|
# exemple de lancement de commande:
|
|
|
|
# python propose_mapping_from_data.py mon_fichier.geojson
|
|
|
|
|
2024-10-16 15:12:35 +02:00
|
|
|
|
|
|
|
# Vérifie si un argument est fourni
|
|
|
|
if len(sys.argv) < 2:
|
2024-11-26 22:35:59 +01:00
|
|
|
print("Usage: python propose_mapping_from_data.py <geojson_file>")
|
2024-10-16 15:12:35 +02:00
|
|
|
sys.exit(1)
|
|
|
|
|
2024-11-26 22:35:59 +01:00
|
|
|
# Ouvre le fichier GeoJSON donné
|
2024-10-16 15:12:35 +02:00
|
|
|
with open(sys.argv[1]) as f:
|
|
|
|
data = json.load(f)
|
|
|
|
|
|
|
|
# Extraire les propriétés de tous les points de la FeatureCollection
|
|
|
|
properties = []
|
|
|
|
for feature in data['features']:
|
|
|
|
props = feature['properties']
|
|
|
|
properties.extend(props.keys())
|
|
|
|
|
|
|
|
# Créer un dictionnaire avec toutes les clés comme clés et des valeurs par défaut vides
|
|
|
|
defaults = {prop: '' for prop in properties}
|
|
|
|
|
|
|
|
# Remplacer les clés contenant "web" ou "téléphone" par "contact:website" ou "contact:phone"
|
|
|
|
defaults.update({prop: 'contact:website' if 'web' in prop else 'contact:phone' if 'téléphone' in prop else '' for prop in properties})
|
|
|
|
|
|
|
|
# Convertir le dictionnaire en JSON et l'afficher
|
2024-11-26 22:35:59 +01:00
|
|
|
print(json.dumps(defaults, indent=2))
|