Blog d'un développeur .NET
Article tagué Spatial Tools
Obtenir les coordonnées géographique d’une région
14/05/09
Pour les besoins d’un petit projet, il me faut les coordonnées géographique des régions administratives françaises. Le but final étant de créer des calques sur les maps Virtual Earth.
Dans un premier temps, j’ai cherché un webservice qui me fournirait ces données. Pas de chances, je n’en ai pas trouvé et me suis donc rabattu sur la solution suivante : une base données sous SQL Server 2008 contenant les calques de mes régions au format Geometry. Voici donc la méthode que j’ai utilisé.
Etape 1 : Récupérer les régions administratives sur GEO Data Portal
Rien de plus simple :
- aller sur le site : http://geodata.grid.unep.ch/
- dans le formulaire de recherche, taper le mot clé : administrative boundaries
- sélectionner les données : Administratives Boundaries – First Level (ESRI), puis cliquer sur Envoyer
- une map apparaît, choisir l’onglet download, puis le format ESRI ShapeFile et lancer le téléchargement (fichier zip)
Etape 2 : Ajouter nos données à SQL Server 2008
Là encore c’est easy :
- Télécharger les SQL Spatial Tools ici
- Décompresser le zip contenant notre fichier ESRI Shapefile
- Décompresser le zip des SQL Spatial Tools et exécuter le programme Shape2SQL.exe
- On rentre les données de connexion à notre BDD, puis on va chercher notre fichier .shp contenant nos shapes des régions
Important : ne pas oublier de cocher « Set SRID » avec la valeur 4326 - Les données sont importées dans notre SQL Server 2008
Tout ça, c’est bien mignon, mais je ne veux que les régions administratives françaises.
Etape 3 : Un peu de requêtage SQL
Pour supprimer toutes les régions, hors françaises, nous allons utiliser l’outils SqlSpatial fournit dans les SQL Spatial Tools. On lance le programme, on se connecte à notre base de données, et on vérifie que nos données soit bien présentes (nom de ma table : adminbound) :
FROM adminbound
Sur la map, on peut alors voir le découpage régional administratif de tous les pays. Maintenant nous n’allons conserver que la France. Pour cela, on va créer une vue qui contiendra les ID de toutes les régions non françaises) :
SELECT ID AS my_key
FROM adminbound
WHERE CNTRY_NAME <> 'France'
Puis supprimer toutes les occurences de la vue dans notre table adminbound :
WHERE EXISTS (SELECT *
FROM v1
WHERE adminbound.ID = v1.my_key)
On vérifie que nous n’avons plus que la France avec une requête classique :
Nos régions françaises apparaissent, on peut donc supprimer la vue :

Régions Françaises
Et voilà, il ne reste plus qu’à servir de cela pour le projet
Mise à jour du 20/09/2009 :
Il semblerait que le lien de téléchargement du fichier zip contenant les coordonnées spatiales des régions administratives (cf Etape 1) soit actuellement indisponible. En analysant un peu l’url, j’ai pu le récupérer. Merci Samuel pour cette remarque :)
Mise à jour du 20/10/2009 :
Le fichier est à nouveau disponible ici.