Accéder aux données de Mapillary et les intégrer dans son SIG#
Date de publication initiale : 31 Mai 2022
Prérequis#
- un jeton Mapillary
- l'interpréteur Bourne-Again shell
- l'outil de conversion ogr2ogr
- cURL
Intro#
Aujourd'hui, je vais vous présenter différentes manières d'accéder aux données identifiées à partir des prises de vue publiées sur Mapillary et qui pourront peut-être vous permettre d'enrichir votre SIG sur certaines thématiques. Pour ce faire nous allons nous appuyer sur les différents services proposés par la 4ème version de l'API.
Warning
L'utilisation des données et services de Mapillary sont autorisés dans le respect des conditions d'utilisation définies par Mapillary notamment aux sections :
- 3 Les licences,
- 11 Conditions supplémentaires pour les développeurs,
- 12 Utilisation des Services Mapillary à des fins commerciales
- 13 Informations sur OpenStreetMap.
1. Les tuiles vectorielles Mapillary dans QGIS#
Lorsqu'on épluche la documentation, on peut voir que Mapillary propose un service d'accès à ses données basé sur des services de tuiles vectorielles. Ils ont l'avantage d'offrir une solution assez souple et légère permettant de visualiser de grandes quantités d'informations. Les tuiles vectorielles de Mapillary suivent les spécifications des tuiles Mapbox (MVT) et offrent la possbilité :
- de réaliser des filtrages et des rendus spécifiques
- d'interroger la donnée
Il existe trois URL permettant d'accéder aux tuiles vectorielles de Mapillary :
- Tuiles de couverture : qui permettent de visualiser les séquences (traces) et la position des prises de vue :
https://tiles.mapillary.com/maps/vtp/mly1_computed_public/2/{z}/{x}/{y}?access_token=XXX
- Tuiles de points : qui permettent de visualiser la position des objets détectés par les algorithmes de mapillary (autres que des panneaux de signalisation) :
https://tiles.mapillary.com/maps/vtp/mly_map_feature_point/2/{z}/{x}/{y}?access_token=XXX
- Tuiles de panneaux de signalisation : qui permettent de visualiser la position des panneaux de signalisation détectés par les algorithmes de Mapillary :
https://tiles.mapillary.com/maps/vtp/mly_map_feature_traffic_sign/2/{z}/{x}/{y}?access_token=XXX
Ajout des tuiles vectorielles#
Dans l'explorateur du Gestionnaire de données de QGIS, ajouter une couche de tuiles vectorielles.
Nommer proprement la couche vectorielle à ajouter et renseigner l'URL de la couche vectorielle qui vous intéresse en n'oubliant pas de modifier le jeton Mapillary qui vous permet de vous identifier.
Ajouter la nouvelle couche de tuiles dans QGIS (pour visualiser l'information, vous devrez zoomer au niveau 14 ou +).
Interrogation des tuiles vectorielles#
Les tuiles vectorielles sont interrogeables et permettent une consultation des différents champs publiés. Si l'on prend l'exemple du flux lié à la signalisation, il est possible d'accéder au type de panneau detecté ainsi qu'aux dates auxquelles il a été vu pour la première et la dernière fois.
Personnalisation des tuiles vectorielles#
Par défaut lors de l'ajout, les données présentent dans les tuiles vectorielles sont automatiquement réparties en :
- Polygones
- Lignes
- Points
Il est possible d'enrichir ce rendu par défaut en ajoutant de nouveaux styles, en définissant la couche sur laquelle vous souhaitez travailler, exemple : traffic_signs
et en jouant avec les filtres, exemple : (geometry_type($geometry)='Point') AND ("value" IS 'information--general-directions--g1')
Info
Il y a aussi la possibilité d'importer un style déjà configuré au format QML ou MapBox GL Json.
2. Extraire les données vectorielles des tuiles vectorielles#
Mainteant qu'on s'est bien amusé sur le tunning des tuiles vectorielles , il pourrait être intéressant de récupérer l'information vectorielle pour la stocker. Dans cette partie, je vais vous présenter un script qui me permet :
- de récupérer de données vecteurs à partir des différents flux des tuiles vectorielles,
- d'intégrer les données dans une base de données PosgreSQL/PostGIS.
Fonctionnement global#
flowchart TD;
A[Tuiles vectorielles ]
A <--> |curl| B{Script mapillary_vt2pg}
B <--> C{config.env}
B --> |ogr2ogr| E(PostgreSQL/PostGIS)
Un environnement de travail : config.env#
Avant de se lancer, il est bon de paramétrer le fichier de configuration que vous devrez adapter à votre organisation et qui sera utilisé pour intégrer les données Mapillary dans votre base de données. On y définit les différents répertoires de travail ainsi que les variables permettant d'accéder à la base de données (connexion par pg_service.conf).
Voici le fichier config.env
à adapter :
Consulter le fichier de configuration
Convertir l'emprise lat/long dans le système de numérotation des tuiles#
Les tuiles ne sont pas définies par une longitude/latitude mais par une numérotation spécifique, il nous faut donc identifier les numéros des tuiles qui croisent notre emprise de travail et pour cela, je me suis appuyé sur une solution proposée sur le wiki d'OpenStreetMap.
Téléchargement des tuiles et création de GPKG#
Ensuite, à l'aide de curl
on va pouvoir télécharger chacune des tuiles en local et en extraire l'information pour l'intégrer dans un Géopackage (que l'on pourra archiver facilement).
Import dans une base de données PostgreSQL/PostGIS#
Après avoir extrait les données vectorielles des tuiles vectorielles, il ne nous reste plus qu'à les intégrer dans notre base de données PostgreSQL/PostGIS à l'aide d'ogr2ogr
.
Exécution#
Maintenant que le fichier de configuration est complété et que vous avez bien compris le principe du script mapillary_vt2pg.sh
, vous allez pouvoir lancer le script de cette manière pour récupérer les données qui vous intéressent dans PostgreSQL/PostGIS.
Exécution | |
---|---|
Rendu#
Pour terminer, on peut charger la donnée dans QGIS et créer un style en s'appuyant sur les symboles partagés par Mapillary.
Conclusion#
Grâce aux capacités de rendu des tuiles vectorielles de QGIS, il est possible de filtrer et personnaliser les données de Mapillary en fonction des besoins, tout en ayant accès à l'information en quasi temps réel.
En parallèle et pour d'autres usages, le script de téléchargement des données va vous permettre de stocker l'information dans votre base de données afin qu'elle puisse :
- bénéficier à vos services concernés (services techniques, voirie...),
- contribuer à améliorer la qualité de vos données.
Références#
- Un article de Morgan Hite sur son blog : QGIS 3 and Vector map tiles
- De l'intérêt de mettre en place un "streetview" libre par J. Sidgwick, CA du Grand Montauban
Auteur·ice#
Florian Boret#
Géomaticien/cartographe, je suis arrivé dans le monde de la géomatique en suivant un cursus « professionnalisant » (BTS Géomètre-Topographe, Licence pro GGAT, Master SIGAT). J’ai ensuite travaillé dans un bureau d’études spécialisé dans la production de données d’occupation du sol et puis pour des raisons personnelles je me suis expatrié quelques années au Sénégal où je me suis lancé comme géomaticien indépendant (DATA\WAX).
Depuis mon retour en France, je suis en charge du SIG de la communauté d'agglomération Lunel Agglo.
En dehors de ces expériences, j'ai aussi régulièrement initié de petits projets personnels iGeo-Topo, GIS-Blog.fr, osm2igeo, osm2igeotopo. Aujourd'hui, c’est avec plaisir que j’interviens également comme contributeur de GeoTribu.
Licence #
Ce contenu est sous licence Creative Commons International 4.0 BY-NC-SA, avec attribution et partage dans les mêmes conditions, sauf dans le cadre d'une utilisation commerciale.
Les médias d'illustration sont potentiellement soumis à d'autres conditions d'utilisation.
Réutiliser, citer l'article
Vous êtes autorisé(e) à :
- Partager : copier, distribuer et communiquer le matériel par tous moyens et sous tous formats
- Adapter : remixer, transformer et créer à partir du matériel pour toute utilisation, exceptée commerciale.
Citer cet article :
"Accéder aux données de Mapillary et les intégrer dans son SIG" publié par Florian Boret sur Geotribu sous CC BY-NC-SA - Source : https://geotribu.fr/articles/2022/2022-05-31_donnees_mapillary/
Commentaires
Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires.
Propulsé par Isso.
Ce contenu est sous licence Creative Commons BY-NC-SA 4.0 International