Portage sur Raspberry.pi voir : OffLine on Rpi


Installation d'un serveur d'imagerie

Un serveur web local avec une réplication des tuiles d'imagerie Bing pour la zone de travail semble suffisant pour les Mapathons Missing-Maps dans des locaux ayant un wifi à faible débit.

Installation d'un serveur de test dans une machine virtuelle (Virtualbox sous Linux). La prochaine étape sera de porter cette installation sur un RaspBerry Pi.

Cette page est construite à partir d'informations collectées sur POSM et Custom tiles

Installation Ubuntu server 14.04.05 LTS

Caractéristiques de la machine :

User : osm. Ajout accès ssh par clé. Configuration vim : colorscheme evening.

Installation paquets de base, NodeJS, Tessera, Nginx

Paquets complémentaires de base

 sudo aptitude install avahi-daemon avahi-autoipd ca-certificates curl moreutils virt-what default-jre-headless git
 sudo curl -L https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 -o /usr/local/bin/jq
 sudo chmod +x /usr/local/bin/jq

Node_Js

sudo apt-get install --no-install-recommends -y nodejs nodejs-legacy npm
sudo npm install -g npm@3
sudo npm install -g interp

Tessera

sudo  add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y libstdc++6
sudo npm install -g mapnik mbtiles tilelive tilelive-mapnik tilelive-carto tilelive-tmstyle \
       tilelive-tmsource tilelive-file tilelive-http tilelive-mapbox tilejson tilelive-vector \
       tilelive-blend tessera tl

Tous ces paquets ne sont sans doute pas nécessaires… il faudrait tester avec juste :

  sudo npm install -g tl tilelive tilejson tilelive-http mbtiles tessera

Nginx

sudo aptitude install nginx

Configuration Tessera

Télécharger une bbox sur Bing

bbox = “minX minY maxX maxY”. On peut utiliser http://bboxfinder.com/ pour définir la bbox mais attention le résultat utilise des virgules en séparateur. ( A supprimer dans la requete ) Dessiner un rectangle sur la zone choisie, sélectionner EPSG 4326 - WGS84, et l'ordre Lng-Lat pour le format puis copier le résultat.

mkdir data
cd data`
tl copy -z 1 -Z 5 -b "-109.940186 38.406254 -107.561646 39.766325" "http://`ecn.t0.tiles.virtualearth.net/tiles/a{q}.jpeg?g=587&mkt=en-us&n=z" mbtiles://./bing.mbtiles

Un test sur une zone plus importante avec une plage de zoom plus grande : Attention 33Mo de tuiles

tl copy -z 16 -Z 19 -b "5.340514 45.950135 5.360298 45.962129" "http://ecn.t0.tiles.virtualearth.net/tiles/a{q}.png?g=5388" mbtiles://./amberieu.mbtiles

Vérifier le téléchargement

tessera mbtiles://./bing.mbtiles Ctrl-C pour arreter

Ouvrir un navigateur http://IP_server:8080/

Configurer le serveur Tessera

sudo mkdir -p /etc/tessera.conf.d

Creer le fichier /etc/tessera.conf.d/bing.json et reporter le nom du fichier que vous venez de télécharger.

{
"/tiles/bing": "mbtiles:///home/osm/data/amberieu.mbtiles"
}
Créer le fichier /etc/init/tessera.conf
# tessera
description     "Tessera Tile Server (Node.js)"

start on (local-filesystems and net-device-up and runlevel [2345])
stop on shutdown

env PORT="8082"
env TESSERA_OPTS="--config /etc/tessera.conf.d -C 100"

respawn
#respawn limit 5 60

pre-start script
    if [ -z "$TESSERA_OPTS" ]; then
      exit 1
    fi
    echo "[`date '+%c'`] Starting: tessera" >> /var/log/tessera.log
end script

pre-stop script
    echo "[`date '+%c'`] Stopping: tessera" >> /var/log/tessera.log
end script

exec start-stop-daemon \
        --start \
        --chdir /home/osm \
        --chuid osm \
        --make-pidfile \
        --pidfile /var/run/tessera.pid \
                --exec /usr/bin/tessera -- >> /var/log/tessera.log 2>&1

Attention : Il faut adapter les lignes --chdir /home/osm et --chuid osm au répertoire de votre user et au nom de votre user

Relancer Tessera

sudo service tessera restart

Vérifications

Normalement la commande ps ax|grep tessera devrait répondre quelque chose comme :

17471 ? Ssl 0:03 node /usr/bin/tessera

et un tail -f var/log/tessera devrait lister les accès au tuiles quand vous accéder avec un navigateur à l'adresse http://IP_serveur:8082/tiles/bing

Configurer Nginx

Editer le fichier /etc/nginx/sites-available/default

server {
    listen 80 default_server;

    root /usr/share/nginx/html;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Host $host;

    server_name localhost rebing rebing.io 172.16.0.33;

    location / {
        try_files $uri $uri/ =404;
                index index.html;

    }
        location /tiles {
        proxy_pass http://127.0.0.1:8082;
        }

    location ~ /\.ht {
        deny all;
    }
}

Sauvegarder et relancer le serveur Nginx

sudo service nginx restart

Vérifications

Les tuiles devraient être visibles sur l'adresse http://IP_server/tiles/bing

Sinon chercher des erreurs dans /var/log/nginx/error.log

Pendant la navigation, on peut visualiser les accès avec un tail -f /var/log/nginx/access.log

Configurer ID pour afficher les tuiles

dans ID, il faut ajouter un fond personnalisé : http://IP_server/tiles/bing/{z}/{x}/{y}.png