[OSM-talk-fr] zoom sur carte

Gilles Bassière gbassiere at gmail.com
Ven 29 Juin 08:46:04 UTC 2012


Le vendredi 29 juin 2012 à 06:21 +0200, Philippe Verdy a écrit :
> Le 28 juin 2012 08:37, Marc Sibert <marc at sibert.fr> a écrit :
> > http://c.tile.openstreetmap.org/18/133039/90247.png/status (donne l'état de
> > la tuile)
> > http://c.tile.openstreetmap.org/18/133039/90247.png/dirty (force le refresh)
> 
> Dommage qu'on n'ait pas la même chose (au moins la sous-page
> "/status") sur les autres serveurs de tuiles hors ceux ici de Mapnik.

(C'est mod_tile qui fournit ceci. Mapnik est le moteur de rendu, pas le
serveur).

> De même le framework OpenLayers ne tient pas compte de l'état du cache
> web affiche de façon indéfinie des images obsolètes récupérées
> d'anciennes versions stockées dans le cache, même lorsque le
> navigateur a chargé une nouvelle version des tuiles.
[...]

Les tuiles ne sont en fait que des images et OpenLayers les chargent
comme telles. Comme tu le dis, OpenLayers ne tient pas compte de l'état
du cache, il ne s'en occupe effectivement pas du tout. La gestion du
cache que tu critiques est en fait celle du navigateur et concerne
toutes les images, tuiles ou autres.

Note qu'il serait difficile pour OpenLayers d'imposer arbitrairement une
gestion du cache puisque toutes les couches tuilées ne sont pas
identiques. Une couche basée sur des données VMAP ne change jamais alors
qu'une couche basée sur OSM est très régulièrement mise à jour par
exemple.

Il existe des astuces pour éviter la mise en cache des ressources
(images ou autre) mais c'est au développeur de l'application de les
mettre en œuvre en fonction des besoins et des spécificités de ses
tuiles.

> Au moins on n'a pas ce problème de rafraîchissement avec les autres
> frameworks. Mais OpenLayers est une collection de scripts
> particulièrement complexes qui génère du code Javascript effectuant
> apparemment ses requêtes HTTP lui-même sans passer par les fonctions
> de chargement web du navigateur

OpenLayers construit dynamiquement l'URL des tuiles (des images donc) et
ensuite ajoute un element <img> dans le DOM avec l'URL de la tuile comme
source. C'est la procédure habituelle pour insérer dynamiquement une
image dans une page et c'est, à mon humble connaissance, de cette
manière que les autres framework fonctionnent aussi.

> et gérant d'une façon étrange le
> stockage dans le cache (ou qui ne tient pas compte des dates
> d'obsolescence): il génère alors un cache local absolument énorme
> contenant des tonnes de tuiles obsolètes qui ne sont même pas purgées.

Encore une fois, le cache est géré par le navigateur, pas par
OpenLayers. Si tu penses que la taille du cache devient trop importante,
libre à toi de configurer ton navigateur en réduisant la taille de son
cache.

-- 
Gilles Bassière - Web/GIS software engineer
http://gbassiere.free.fr/






Plus d'informations sur la liste de diffusion Talk-fr