Alimentation du cache

Author:Thomas Bonfort
Contact:tbonfort at terriscope.fr
Author:Mathieu Coudert
Contact:mathieu.coudert at gmail.com
Mod-mapcache ships with an advanced seeding tool, whose main features are:
  • Nombre de process d’alimentation configurable, pour accélérer le rendu
  • capacité à régénérer certaines tuiles plus âgées qu’une date particulière
  • capacité à générer les tuiles d’après une source de données shapefile/ogr

Usage

L’utilitaire d’alimentation du cache est nommé mapcache_seed et est situé sous le répertoire d’installation (/usr/local/bin par défaut).

Options de ligne de commande

Options are available in short and long versions (e.g. -c or –config).

-c | –config [file] : chemin vers le fichier de configuration mapcache.xml qui contient les tilesets qui nécessitent d’être générés.

-D | –dimension « DIMENSION=VALEUR »: utilisé pour définir quelle dimension utiliser si le tileset gère les dimensions. Peut être utilisé plusieurs fois pour définir plusieurs dimensions, e.g. -D « DIM1=VAL1 » -D « DIM2=VAL2 ».

-e | –extent minx,miny,maxx,maxy: boîte englobante de la surface à générer.

-f | –force: force recreation of existing tiles.

-g | –grid [grid]: nom de la grille qui doit être remplie (le tileset sélectionné doit référencer la grille donnée).

-h | –help: show help.

-i | –iteration-mode: soit « drill-down » ou « level-by-level ». drill-down est la valeur par défaut pour les grilles g, WGS84 et GoogleMapsCompatible, et level-by-level pour les autres. Utilisez cette option pour imposer votre valeur.

-m | –mode: the mode to use the seeder: « seed », « delete » or « transfer ». Default is seed (mode: seed).

-M | –metasize: override metatile size while seeding, e.g. 8,8.

-n | –nthreads: number of parallel threads that should be used to request tiles from the WMS source. The default is 1, but can be set higher if the WMS server can withstand parallel requests. (As a rule of thumb, the value chosen here should never be much higher than the number of CPUs on the WMS server.)

Note

This option is imcompatible with the -p | –nprocesses option.

-o | –older [timestamp|now]: only seed tiles that are older than the given value. The value can either be the string « now », or a date formatted like year/month/day hour:minute, e.g. « 2011/01/31 20:45 ».

Note

A full timestamp should be quoted.

-p | –nprocesses: number of parallel processes that should be used to request tiles from the WMS source.

Note

This option is imcompatible with the -n | –nthreads option.

Avertissement

Lorsqu’on travaille avec plusieurs processus (option -p) et caches SQLites, des erreurs sont susceptibles d’apparaître en situation de forte concurrence lors d’écritures dans la base SQLite (erreur: SQL logic error or missing database (1)). Une mise à niveau de SQLite en version supérieure ou égale à 3.7.15 semble résoudre le problème.

-q | –quiet : n’affiche pas les messages de progression vers la sortie standard.

-t | –tileset [tileset]: nom du tileset qui doit rempli.

-v | –verbose: affiche des informations de débugage verbeux (si compilé).

-x | –transfer: the tileset to transfer when seeder is run in transfer mode.

-z | –zoom minzoom,maxzoom: niveaux de zoom de départ et de fin qui doit être rempli.

Optional Commandline Options When Using OGR/GEOS

Si au moment de la compilation OGR et GEOS ont été trouvés sur le système, l’outil d’alimentation autorise des options complémentaires pour ne générer que les tuiles qui recouvrent une aire géographique quelconque. Important: Remarquez bien que pour le moment, les sources de données OGR devraient être dans la même projection que la grille utilisée, car il n’y a pas de reprojection automatique de la projection de la source de données vers celle de la grille.

-d | –ogr-datasource [ogr_datasource]: OGR connection to the spatial source. Consult the OGR documentation for all that is supported. In the simplest case (e.g. a Shapefile), this is just the full filename of the shapefile.

-l | –ogr-layer [ogr_layer]: for datasources that contain multiple layers (e.g. PostGIS, with multiple tables), determines which layer will be used.

-s | –ogr-sql [ogr_sql]: OGR SQL expression that can be applied (see OGR SQL).

-w | –ogr-where [ogr_where]: SQL « where » expression to filter out returned values. This would typically be used to select only the geometry of a given country if the datasource contains all the world contours.

Note importante

L’utilitaire d’alimentation doit être lancé avec le même compte utilisateur que celui qui fait tourner le serveur web. Cela est nécessaire pour que les permissions sur les tuiles et répertoires créés lors de la pré-génération soit ensuite accessible par le serveur web, et que réciproquement l’utilitaire d’alimentation puisse écrire dans les répertoires créés initialement par le serveur web.

Un session de pré-génération peut ressembler à ceci

[user@host]$ sudo www-data
[www-data@host]$ /path/to/mapcache/src/mapcache_seed -c /path/to/www/conf/mapcache.xml [[options]]
[www-data@host]$ logout
[user@host]$

Exemples

Génère le jeu de tuiles « osm » en utilisant la grille « g » (Google / Web Mercator):

./src/mapcache_seed -c mapcache.xml -t osm -g g

Niveaux de pré-génération de 0 à 12:

./src/mapcache_seed -c mapcache.xml -t osm -g g -z 0,12

A partir d’un shapefile contenant les frontières des pays, ne générer que les zones couvertes par la terre (donc éviter les océans). Utiliser pour cela 4 threads en parallèle:

./src/mapcache_seed -c mapcache.xml -t osm -g g -z 0,12 -n 4 -d /path/to/seed.shp

Pareil que précédemment, mais générer uniquement les USA (remarquez l’utilisation des apostrophes, destinées à créer un SQL valide avec un “US” en apostrophes simples:

./src/mapcache_seed -c mapcache.xml -t osm -g g -z 0,12 -n 4 -d /path/to/seed.shp -w "FIPS_A2='US'"

Régénérer les niveaux 0 à 12 (cela pourrait aussi être fait en supprimant du cache les niveaux 0 à 12 puis en faisant une pré-génération classique, mais faire ainsi ne ralentit pas les accès faits par les clients web):

./src/mapcache_seed -c mapcache.xml -t osm -g g -z 0,12 -o now