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 :

  1. aller sur le site : http://geodata.grid.unep.ch/
  2. dans le formulaire de recherche, taper le mot clé : administrative boundaries
  3. sélectionner les données : Administratives Boundaries – First Level (ESRI), puis cliquer sur Envoyer
  4. 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 :

  1. Télécharger les SQL Spatial Tools ici
  2. Décompresser le zip contenant notre fichier ESRI Shapefile
  3. Décompresser le zip des SQL Spatial Tools et exécuter le programme Shape2SQL.exe
  4. 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
  5. 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) :

SELECT *
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) :

CREATE VIEW v1 AS
SELECT ID AS my_key
FROM adminbound
WHERE CNTRY_NAME <> 'France'

Puis supprimer toutes les occurences de la vue dans notre table adminbound :

DELETE FROM 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 :

SELECT * FROM adminbound

Nos régions françaises apparaissent, on peut donc supprimer la vue :

DROP VIEW v1
Régions Françaises

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.