Pages Menu
TwitterRssFacebook
Categories Menu

Posted by on Jul 21, 2014 in GIS, Mapping, What's new | 1 comment

Tuto: Utiliser la donnée Wikimapia dans QGIS

Tuto: Utiliser la donnée Wikimapia dans QGIS

This tutorial is also available in English.

Présentation de Wikimapia

Wikimapia est un projet de cartographie participative en ligne lancé en 2006 par deux informaticiens russes, basé sur l’imagerie satellite de Google. Le fonctionnement est relativement simple : il s’agit de retracer des lieux par rapport à l’imagerie puis leur attribuer des annotations pour expliquer de quoi il s’agit : un parc, un hôpital, une école, une montagne, etc. En 2013, plus de 20 millions de lieux étaient identifiés à travers le monde.

Depuis 2010, les données de Wikimapia sont disponibles sous licence  Creative Commons License Attribution-ShareAlike (CC BY-SA). Toutefois, étant donné que les lieux sont tracés à partir de l’imagerie Google, les données de Wikimapia peuvent être considérées comme du « travail dérivé » ce qui peut poser des questions de réutilisation, particulièrement pour des usages commerciaux. Plus d’information sur la licence : http://en.wikipedia.org/wiki/WikiMapia#Licensing

Toute comme OpenStreetMap, Wikimapia se nourrit du travail de ses contributeurs bénévoles. La donnée produite peut ainsi être extrêmement précise, particulièrement pour les villes, et parfois plus qu’OpenStreetMap comme le montre l’exemple suivant :

WM1

Donnée Wikimapia pour la ville de Al Qadarif au Soudan (10/07/2014)
(il faut s’imaginer que chaque polygone blanc représente un lieu identifié : un quartier, un bâtiment en particulier, etc.)

WM2

Comparaison : Donnée OpenStreetMap pour la ville de Al Qadarif au Soudan (10/07/2014)

Pour consulter la carte des données Wikimapia, rendez-vous sur le site http://wikimapia.org/

Cependant, malgré la richesse de l’information qui n’a parfois rien à envier à OpenStreetMap ou à d’autres bases de données, Wikimapia souffre de certains défauts qui limitent grandement son potentiel :

  1. La donnée est souvent en langue locale ce qui demande une traduction systématique.
  2. Le système d’attribut des données est beaucoup moins poussé et efficace que celui des tags d’OpenStreetMap.
  3. L’export des données est plus compliqué que pour OpenStreetMap, qui dispose d’outils performants (Geofabrik, HOT Exports…).

Le but de ce tutoriel est de vous montrer une manière (parmi d’autres) d’exporter la donnée Wikimapia, et de créer une couche par type d’objet (par exemple : une couche d’hôpitaux, une couche d’écoles, etc.) utilisable dans vos projets QGIS.

Téléchargement des données grâce à l’API de Wikimapia

L’API (application programming interface) de Wikimapia est une interface qui permet de télécharger la donnée contenue dans la base de données de Wikimapia. Cette interface est accessible via le lien suivant : http://wikimapia.org/api

L’utilisation de l’API étant relativement complexe, nous l’avons simplifiée pour ce tutoriel dans un tableur Excel à télécharger ici : Wikimapia_API_Builder

L’API Builder est configuré pour télécharger tous les éléments d’une même catégorie contenus dans une zone précise. Vous n’aurez qu’à modifier les valeurs des cellules oranges :

WM3 

  • Key : Dans la cellule orange en face de Key, entrez votre clé d’API. Si vous n’en avez pas, laissez example (l’export fonctionnera quand même mais vous ne pourrez pas télécharger de trop grandes quantités de données). Pour générer une clé, rendez-vous ici : http://wikimapia.org/api?action=create_key
  • WM4Category ID : Dans cette cellule, vous devez renseigner l’ID de la catégorie que vous souhaitez télécharger (par exemple : 287 pour les hôpitaux). Pour connaitre l’ID des différentes catégories, cliquez sur See category full list.
  • Bbox : Dans les 4 cellules de Bbox (Boundary Box), entrez les limites de la zone que vous voulez exporter.  Pour trouver les limites, vous pouvez utiliser l’outil d’export d’OSM : www.openstreetmap.org/export

Attention à ne pas choisir une zone trop grande, il n’est possible de télécharger que 100 objets à la fois. Si vous voulez couvrir une grande zone, divisez-la en plusieurs requêtes.

Une fois vos paramètres renseignés, copiez  le lien bleu (clic droit sur la cellule A20 -> Copier)  et collez-le dans la barre d’adresse de votre navigateur, ce qui aura pour effet de lancer le téléchargement d’un fichier .kml qui contient l’ensemble des objets correspondant à votre requête.

Pour vérifier que votre export à bien fonctionné, vous pouvez ouvrir le fichier .kml téléchargé avec Google Earth :

WM5

Exemple : Les écoles (category ID : 203) de Al Qadarif présentes dans la base de données de Wikimapia

Conversion du .kml en .shp

Le kml créé par l’API de Wikimapia est de type “multigeometry” ce qui signifie que pour un même objet, il existe à la fois un point (placemark) et une ligne (on le voit très clairement dans la capture d’écran de GoogleEarth ci-dessus, chaque école possède à la fois un placemark jaune et un contour blanc).

Le problème, c’est que QGIS ne sait pas ouvrir ce type de kml, il va donc falloir le convertir en deux autres fichiers et séparer les lignes des points.

Pour cela, nous allons utiliser le logiciel KML2KML, téléchargeable ici : kml2kml.geoblogspot.com/

WM6

Cliquez sur Download KML2KML for GE Plugin v.6 and later

Suivez la procédure d’installation classique et une fois installé, ouvrez KML2KML.

  • WM7Cliquez sur l’icone de dossier en haut à gauche pour ouvrir le fichier KML qui a été créé et téléchargé grâce à l’API de Wikimapia.
  • Cliquez sur l’onglet Export et choisissez “To Shapefile”
  • Choisissez le chemin du shp de sortie

 

KML2KML crée ainsi 2 shapefiles, un contenant les centroïdes des polygones (points) et un autre contenant le contour des polygones (lignes).

Vous pouvez ouvrir ces deux shapefile dans QGIS et ainsi ajouter cette source de donnée supplémentaire à vos projets.

 

Petit plus : si vous voulez obtenir des polygones à partir du shapefile de lignes, utilisez l’outil Lines to Polygons :

WM8

 

 /!\ Si vous connaissez une manière plus rapide de convertir un KML multigeometry en shapefile (par exemple via un script python), n’hésitez pas à laisser un commentaire ;)

1 Comment

  1. Salut Léo,

    Merci pour ton tuto. J’ai juste un problème au niveau de la conversion du KML multigeometry en Shapefiles. J’ai téléchargé un ensemble de “villages” et il semblerait qu’il y ai un problème lors de l’export KML2KML: les “lignes” créées n’ont plus rien à voir avec celles du KML original (distordues et déplacées dans un autre pays). Je ne sais pas si c’est un problème de projection car les “points” de l’autre shapefile semblent correctement positionnés. Malheureusement, ce qui m’intéresse, ces les lignes (pour créer mes polygones de “villages”).

    Connaitrais tu la raison de ce problème et aurais tu la solution?

    Merci!

Post a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

A propos de l'auteur :

Léo Martine

Léo is working at CartONG since April 2014 as GIS officer. He's sharing on this blog a few tips and tricks he has discovered during his trainings, developments and missions.