Suite

Comment servir des tuiles de carte OSM (mbtiles) à partir d'un Raspberry PI 2 ?

Comment servir des tuiles de carte OSM (mbtiles) à partir d'un Raspberry PI 2 ?


Ma machine de traitement principale est une boîte Ubuntu exécutant 14.04 avec PostGIS et TileMill. J'ai généré mes tuiles et l'exportation de mbtiles résultante est d'environ 250 Mo (mo, pas de gigs). Le PI exécute python, dispose d'une carte de stockage suffisamment grande pour conserver l'exportation des mbtiles et du wifi. Tout au plus, je pourrais avoir 2-3 appareils accédant au point de terminaison demandant des tuiles. En règle générale, un seul appareil demandera des tuiles.

En gardant à l'esprit que je préfère la simplicité avec des exigences matérielles minimales à un serveur riche en fonctionnalités, quelles sont mes options pour servir les tuiles à partir des mbtiles avec un PI 2 ?


D'après la documentation disponible, il semble que vous deviez :

  1. Installer un serveur Web sur le Pi, comme Apache
  2. Placez les tuiles (que vous avez déjà générées) dans une structure de répertoires connue au sein de votre serveur Web.
  3. Par le lien précédent : Modifiez l'instance OpenLayers pour utiliser votre propre serveur de tuiles au lieu du principal

Le lien au 2ème point propose des alternatives à l'utilisation d'un serveur Web. Il y avait une implémentation Ruby/Python qui peut également suffire.


D'après ce que vous avez décrit, une option simple serait d'utiliser Tilestache. Il prend en charge nativement les mbtiles, vous n'avez donc pas besoin de les décompresser. C'est bon pour la maintenance et peut économiser de l'espace en raison de l'idée de vue que j'ai décrite dans un commentaire sur une autre de vos questions.

Il existe au moins trois façons de servir les carreaux avec Tilestache. J'irais avec le premier d'entre eux (c'est-à-dire courirtuilestache-serveur.pyavec un fichier de configuration approprié, ne vous inquiétez pas de trouver un autre serveur WSGI comme gunicorn à moins que vous ne l'ayez déjà exécuté quelque part). Les autres options sont également valables si vous préférez utiliser une approche alternative pour des raisons non décrites dans votre question (par exemple, avoir besoin de partager les ressources PI2).

Une alternative à Tilestache serait tilestream. Il est également capable de fonctionner nativement avec mbtiles. Tilestream est probablement plus performant que Tilestache (bien que je ne les ai pas comparés), mais il est probablement excessif pour ce que vous avez décrit. Tilestream est peut-être mieux si vous voulez quelque chose que vous pouvez pirater et préférez nodejs à python.