Téléchargement tuiles OSM et OpenTopoMap

Bonjour à tous,

Pour une solution carto qui devra pouvoir fonctionner hors ligne, j’aurai besoin de récupérer les tuiles raster OSM standard et OpenTopoMap sur tout le département de l’Hérault, avec un niveau de zoom suffisamment détaillé (16 ou 17). Il n’y a pas besoin de mises à jour fréquentes (du style une fois par an grand max). Je connais des outils de téléchargements de tuiles, mais là vu la quantité je préfère éviter pour ne pas surcharger les serveurs de tuiles mutualisés ! Du coup je me demandais si il y avait quelque part un service dédié qui proposerait des tuiles prêtes à télécharger sans faire de mal à quelque serveur que ce soit.

Je sais qu’il y en a qui vont me dire que la solution serait de mettre en place mon propre serveur de tuiles, mais tant qu’à faire je préfèrerai éviter autant de complication vu qu’il n’y a pas un gros besoin de mise à jour.

Salut Nicolas,

Je ne réponds pas à la question car j’en ai aucune idée, mais je suis surpris que tu aies seulement besoin d’une maj annuelle alors que tu fais tout pour avoir des fonds de carte OSM le plus à jour possible.

Oui alors j’ai pas tout expliqué :smile:

Ce n’est pas pour notre usage habituel mais pour notre nouveau véhicule cartographique et seulement en backup dans le cas où on ne puisse pas avoir de réseau 4G à l’endroit de l’intervention. De toute façon sur l’Hérault en ce qui concerne les bâtiments et le réseau routier il y aura maintenant assez peu de changement dans OSM (sauf nouvelles constructions). Entre mars 2022 et mars 2023 avec l’aide des contributeurs locaux, on a mis à jour les 342 communes du département. D’ailleurs j’en parlerai en juin au SOTM-FR à Marseille !

2 Likes

Ahhhh ok, c’est du backup ! Désolé, j’aime bien aller au fond des choses. Ca prouve que je suis :wink:
Bon on ne va pas spoiler la conf de Marseille .

Salut Nicolas,
je vais répondre un peu à côté : depuis peu Geofabrik propose du téléchargement de tuiles vectorielles : Notizen aus der Maschinenhalle » Blog Archive » (Experimental) vector tiles on Download Server par pays. Si au lieu d’envisager de l’affichage raster tu te lances dans le vecto, ça fait une piste intéressante. C’est un chouille plus complexe que brancher des tuiles png derrière un Leaflet mais rien d’insurmontable

1 Like

Je pense que tu surestimes largement la mise en place d’un serveur de tuiles avec docker (au moins pour le style carto-css).

Les gérer toi-même avec un schéma OpenMapTiles plus standard (utilisable avec des styles vecto déjà existants) est aussi maintenant très facile avec planetiller.

Intéressant Fred merci ! Donc si je comprends bien le 1er lien il s’agit d’un conteneur docker openstreetmap-tile-server qui propose un serveur de tuiles raster prêt à l’emploi avec le rendu OSM standard. Et concernant ton 2ème lien un autre conteneur docker qui sert à mettre en place un serveur de tuiles vectorielles ?

Bon il faudra que je regarde ça pour bien comprendre le fonctionnement, en commençant par les commandes docker (il serait temps d’ailleurs). Pour une mise en prod sur un serveur ça ne pose pas de souci d’utiliser ces conteneurs ou il vaut mieux passer par l’installation manuelle sans conteneurisation ?

1 Like

Merci Vincent pour l’info je vais regarder ça aussi. Je n’avais pas vu ça sur geofrabrik. Hé bien il y a du beau monde qui répond à ma question : Donat, Vincent, Fred je suis gâté !! :wink:

Tu me prêtes un rôle bien trop important: j’ai juste demander des précision :wink:

Non, c’est juste un générateur de tuiles, il faut ensuite un serveur ou un lecteur de MBTiles (tileserver-gl ou qgis par ex)

1 Like

Ok merci Fred pour la précision. Pas de problème c’est pour charger dans QGIS de toute façon.

Ah oui mais j’y pense du coup avec des tuiles vectorielles le rendu devra être fait côté client c’est à dire avec QGIS dans mon cas. Ou il y a quand même la possibilité de faire un pré-rendu du côté du serveur ? Désolé la question est peut-être un peu bête mais je suis une quiche totale en tuiles vectorielles…

Ah oui mais j’y pense du coup avec des tuiles vectorielles le rendu devra être fait côté client c’est à dire avec QGIS dans mon cas.

Tu peux charger des styles vecto existant maplibre/mapbox directement dans QGIS, pas besoin de refaire un style. Un équivalemment OSM-Carto existe, topo aussi.

Pour le style osm-carto-like tu as ça

Pour le style topo ça n’existait pas en libre, j’en ai fait un
https://vecto.teritorio.xyz/styles/teritorio-topo/?vector#14.89/45.21526/5.70047

Mais tu peux utiliser tous les autres styles déjà existant sans surcoût, vue que c’est le client qui applique le style.

Tu peux trouver des galeries de styles ici:

Ou il y a quand même la possibilité de faire un pré-rendu du côté du serveur ? Désolé la question est peut-être un peu bête mais je suis une quiche totale en tuiles vectorielles…

Oui, tileserver-gl fait de la rasterisation de tuiles vecto. Mais si tu peux éviter il vaut mieux.

Hé bien hé bien merci mille fois pour tout ça Fred. Tu es mon grand gourou des tuiles vectorielles ! :man_bowing:

Bon il y a encore juste un truc que je ne comprends pas bien c’est comment récupérer les styles que tu cites (notamment ton joli topo) pour les intégrer dans QGIS. Mais je vais chercher !

Bon il y a encore juste un truc que je ne comprends pas bien c’est comment récupérer les styles que tu cites (notamment ton joli topo) pour les intégrer dans QGIS. Mais je vais chercher !

Il faut utiliser le style.json. La plus part du temps l’original est sur undépôt github :

Tu en trouves sur github : Search · gl-style · GitHub
Attention, il ne sont pas tous compatible au schéma OpenMapTiles, il y en a aussi pour le schéma Mapbox et maintenant on va aussi en avoir pour le schéma Shortbread de Geofabrik si ça prend.

Aujourd’hui j’ai un peu commencé à manipuler les tuiles vecteur suite à vos conseils. Premier truc j’ai téléchargé les tuiles pbf geofabrik. Tentative de chargement avec une connexion de tuiles vectorielles dans QGIS. Ça charge bien les tuiles avec un style par défaut. Par contre quand j’applique le style de topo de Fred plus rien ne s’affiche… J’ai donc maintenant bien compris ce qu’était un schéma de tuiles vectorielles ! Geofabrik c’est du schéma Shortbread et le style de Fred c’est pour du OpenMapTiles donc pas compatible. Du coup si il y a encore très peu de styles pour Shortbread ça va pas m’être très utile pour le moment…

Donc j’ai suivi le conseil de Fred, c’est à dire générer mes propres tuiles vectorielles sur l’ex-région languedoc-roussillon avec planetiler. Après quelques tâtonnements j’ai réussi mon coup ! Par contre je suis très surpris mais au final ça génère un mbtiles ! J’ai réussi à l’ouvrir en le glissant dans QGIS et en appliquant le style topo de Fred. C’est joli ! :star_struck:

Par contre j’aurai franchement préféré obtenir un répertoire de tuiles pbf comme celles qu’on télécharge sur geofabrik. Pour la réutilisation par les utilisateurs de QGIS ce serait franchement plus simple de définir une fois pour toute une connexion de tuiles vectorielles. Or quand on fait ça en pointant le fichier mbtiles, ça ne fonctionne pas. J’ai donc essayé d’exploser le mbtiles en arborescence en utilisant l’outil mb-util. J’obtiens bien une arborescence de pbf, mais quand j’essaye de l’ouvrir dans QGIS cette fois ça ne fonctionne pas et là je ne comprends pas pourquoi… J’ai pas trouvé mais est-ce qu’il y a une astuce directement avec planetiler pour obtenir une arborescence de pbf plutôt qu’un mbtiles ?

Et Fred une autre question rapport à ton rendu topo. Comment ajoutes-tu l’ombrage de relief et les courbes de niveau ? J’ai pas ça sur le rendu affiché dans QGIS avec le mbtiles que j’ai généré.

Rectification : en fait avec les pbf geofabrik ça ne marche pas dans QGIS. J’ai téléchargé des styles pour shortbread ici : Geofabrik Vector Tiles | bert
Quand je charge avec une connexion de tuiles vectorielles en mettant le répertoire des pbf comme source et le fichier du style shortbread, je n’ai pas d’erreur dans QGIS, mais rien qui s’affiche !

Il vaut mieux manipuler les MBTiles.
De mémoire tu peux référencer un MBTiles local là ou il te faut une URL avec file:///