Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 29 April 2009 11:55

Remi01
Participant actif
Date d'inscription: 18 Jan 2007
Messages: 74

Mise en place Tilecache - Tuiles roses Vmap0

Bonjour,

J'ai tenté une mise en œuvre de tilecache pour accélérer le service WMS de l'application que je met en place.

J'ai suivi le tutoriel de geotribu ainsi que les infos dispo sur neo-geo

Voila ce que j'ai fait :

1. Décompressé Tilecache-2.10 dans c:/ms4w/Apache/htdocs - j'ai renommé mon dossier "tilecache-2.10" par "tilecache"

2. Dans c:/ms4w/Apache/conf/httpd.conf, j'ai ajouté les lignes suivantes (à la fin) :

<Directory /ms4w/Apache/htdocs/tilecache>
AddHandler cgi-script .cgi
Options +ExecCGI
</Directory>


3. Dans le fichier tilecache.cfg j'ai spécifié le répertoire dans lequel je souhaite que les tuiles soient stockées (ce répertoire existe bien)

[cache]
type=Disk
base=/ms4w/Apache/htdocs/tilefolder


Pour info, les lignes suivantes sont décochées, je n'y ai pas touché :

[basic]
type=WMS
url=http://labs.metacarta.com/wms/vmap0
extension=png


4. J'ai redémarré Apache.

Au final, lorsque je teste la page (http://172.**.***.***/tilecache/) je n'ai que des tuiles roses, et rien dans le dossier du cache.

J'ai fait pas mal de recherche sur le net (forum, user list), mais rien de concluant, quelque chose doit m'échapper ! d'autant que la procédure est sensé être simple ... et que j'ai l'ai recommencée à plusieurs reprises ...

Avez-vous des idées, pour me permettre d'avancer ?

Merci (!)

Rémi

Hors ligne

 

#2 Wed 29 April 2009 12:03

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Mise en place Tilecache - Tuiles roses Vmap0

bonjour,

Cela me parait incorrecte :

Code:

[cache]
type=Disk
base=/ms4w/Apache/htdocs/tilefolder

Il doit manquer le chmm devant. D'autre part, j'ai "DiskCache" chez moi et pas "Disk"

Je suppose que tu as créé un alias dans la config d'apache ?:

Code:

Alias tilecache  /ms4w/Apache/htdocs/tilecache

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Wed 29 April 2009 12:24

Remi01
Participant actif
Date d'inscription: 18 Jan 2007
Messages: 74

Re: Mise en place Tilecache - Tuiles roses Vmap0

Bonjour Yves,

Yves a écrit:

Il doit manquer le chmm devant. D'autre part, j'ai "DiskCache" chez moi et pas "Disk"


Modifications effectuées....

Yves a écrit:

Je suppose que tu as créé un alias dans la config d'apache ?:


Je n'ai pas créé d'alias...  Je viens donc de rajouter cette ligne dans le httpd.conf, est-ce correct ?

Après avoir redémarré Apache, c'est malheureusement toujours pareil, les tuiles sont roses.

Merci encore,

rémi

Hors ligne

 

#4 Wed 29 April 2009 12:41

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Mise en place Tilecache - Tuiles roses Vmap0

Que renvoie :

Code:

http://172.**.***.***/tilecache/tilecache.py

?

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Wed 29 April 2009 12:48

Remi01
Participant actif
Date d'inscription: 18 Jan 2007
Messages: 74

Re: Mise en place Tilecache - Tuiles roses Vmap0

La page n'est pas trouvé, il me renvoie --> NOT FOUND

Je n'ai effectivement pas de tilecache.py dans mon dossier tilecache...

EDIT : J'ai renommé le tilecache.cgi en tilecache.py

Voila son contenu :

#!/usr/bin/env python

from TileCache import Service, cgiHandler, cfgfiles

if __name__ == '__main__':
    svc = Service.load(*cfgfiles)
    cgiHandler(svc)

Dernière modification par Remi01 (Wed 29 April 2009 12:53)

Hors ligne

 

#6 Wed 29 April 2009 12:55

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Mise en place Tilecache - Tuiles roses Vmap0

Remi01 a écrit:

EDIT : J'ai renommé le tilecache.cgi en tilecache.py


Non, modifie l'url !

J'ai utilisé ma config qui n'utilise pas le mod_cgi de tilecache mais le mod_python.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#7 Wed 29 April 2009 13:02

Remi01
Participant actif
Date d'inscription: 18 Jan 2007
Messages: 74

Re: Mise en place Tilecache - Tuiles roses Vmap0

Donc avec cet Url smile

http://172.**.***.***/tilecache/tilecache.cgi


J'obtiens un joli "500 Internal server error" hmm

...

Dernière modification par Remi01 (Wed 29 April 2009 13:55)

Hors ligne

 

#8 Wed 29 April 2009 14:01

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Mise en place Tilecache - Tuiles roses Vmap0

As tu bien remplacé tous les ms4w/... par c:/ms4w/.... est ce que le chemin est bien correcte ?

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#9 Wed 29 April 2009 14:33

Remi01
Participant actif
Date d'inscription: 18 Jan 2007
Messages: 74

Re: Mise en place Tilecache - Tuiles roses Vmap0

Merci encore pour ton aide Yves !!

-----

Problème résolu, en fait il s'agissait du "Shebang" hmm du fichier tilecache.cgi qui n'était pas renseigné correctement.

L'erreur Apache était

couldn't spawn child process: C:/ms4w/Apache/htdocs/tilecache/tilecache.cgi


La ligne modifié du fichier tilecache.cgi est :

#! C:/Python26/python.exe


Le fond vmap0 s'affiche désormais correctement !

A bientôt smile

Hors ligne

 

#10 Thu 28 May 2009 16:38

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: Mise en place Tilecache - Tuiles roses Vmap0

Salut,

Grâce à ce sujet, j'ai pu également trouver mes erreurs dans la configuration de tilecache et donc je suis bien arrivé à afficher le fond vmap0.
Par contre, dès que je veux essayer d'afficher une de mes couches, je retrouve les tuiles roses.

Pourtant j'ai l'impression de mettre les bons paramètres dans tilecache.cfg :

Code:

[communes]
type=WMSLayer
url=http://localhost/cgi-bin/mapserv?map=c:/ms4w/Apache/htdocs/projet_test/natura.map
bbox=314054,1732848,576643,2069423
layers=communes
srs=EPSG:27593
extent_type=loose
maxResolutions=0.0013309327968750034
levels=10 
extension=png
metaTile=true

Pourquoi ce bug ?

Dernière modification par Maxime31 (Thu 28 May 2009 16:38)

Hors ligne

 

#11 Thu 28 May 2009 16:45

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Mise en place Tilecache - Tuiles roses Vmap0

Bonjour,

Une petites astuces pour débuguer : sauver la tuile et l'ouvrir dans un éditeur de texte pour lire le message d'erreur wink

Autre manière : installer firebug, le lancer (et l'activer), cliquer sur "Inspecter" et cliquer sur le une des tuiles, l'onglet HTML s'ouvre dans firebug, rechercher l'url de la tuile et l'ouvrir dans un nouvel onglet. Le message d'erreur devrait s'afficher dans le navigateur !

Quel est le message d'erreur ?

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#12 Thu 28 May 2009 16:52

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: Mise en place Tilecache - Tuiles roses Vmap0

Bonjour Yves, merci de ta réponse rapide et de cette technique pour voir le bug !

Code:

Message d'erreur : An error occurred: can't find resolution index for 291.882857. Available resolutions are: 
[1314.74609375, 657.373046875, 328.6865234375, 164.34326171875, 82.171630859375, 41.0858154296875, 20.54290771484375, 10.271453857421875, 5.1357269287109375, 2.5678634643554687]

J'imagine qu'il faut spécifier les résolutions dans le .cfg ou un truc dans le genre non ?

Hors ligne

 

#13 Thu 28 May 2009 17:01

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Mise en place Tilecache - Tuiles roses Vmap0

bonjour,

Il y a plusieurs solutions et elles dépendent de ce que tu as fait du côté d'OpenLayers. As tu redéfinie les résolutions ou les niveau de zoom ?  Si oui tu devras les retrouver une par une ! Mais tu peux déjà rajouter la résolution 291.882857.

En effet cela se rajoute dans le fichier de config de TileCache.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#14 Thu 28 May 2009 17:04

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: Mise en place Tilecache - Tuiles roses Vmap0

Côté OL, j'ai juste fait ça :

Code:

                map= new OpenLayers.Map('map', 
                {maxExtent:new OpenLayers.Bounds(416635, 1729996, 685832, 1934314),
                maxResolution: 'auto',
                units:'meters',
                projection:'EPSG:27593'});     
                
                var wms1 = new OpenLayers.Layer.WMS("Communes", 
                   "http://localhost/tilecache/tilecache.cgi?", {layers: "communes"});
                 map.addLayer(wms1);

Donc j'ai juste à rajouter dans le fichier config de Tilecache : resolutions=291.882857 ?

Hors ligne

 

#15 Thu 28 May 2009 17:09

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Mise en place Tilecache - Tuiles roses Vmap0

Maxime,

Non il faut rajouter les résolutions pour chaque niveau de zoom ! Via firebug, tu peux zoomer d'un niveau et lancer la commande map.getResolution() pour chaque niveau de zoom et obtenir ainsi tes résolutions !

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#16 Thu 28 May 2009 17:11

Remi01
Participant actif
Date d'inscription: 18 Jan 2007
Messages: 74

Re: Mise en place Tilecache - Tuiles roses Vmap0

Je conseille également Firebug, j'ai mis du temps à comprendre comment l'utiliser mais au final j'ai bien fait, c'est très pratique.

Concernant les résolutions, personnellement j'y arrive "à tâtons".

J'ai spécifié des échelles logiques dans la carte Openlayers, configuré Mapserver pour enchainer les layers correctement et ensuite grâce à firebug il est possible de connaitre les résolutions à spécifier en utilisant la méthode décrite par Yves pour trouver le message d'erreur, celui-ci donnant la bonne valeur de résolution pour l'échelle courante.

Ensuite, il faut recommencer pour toutes les échelles ...

C'est sans doute la pire méthode, mais j'ai pas réussi à faire mieux smile

Bon courage !

Dernière modification par Remi01 (Thu 28 May 2009 17:12)

Hors ligne

 

#17 Thu 28 May 2009 17:14

Remi01
Participant actif
Date d'inscription: 18 Jan 2007
Messages: 74

Re: Mise en place Tilecache - Tuiles roses Vmap0

Yves a écrit:

Via firebug, tu peux zoomer d'un niveau et lancer la commande map.getResolution() pour chaque niveau de zoom et obtenir ainsi tes résolutions !

Y.


Voila de quoi se simplifier la vie, merci Yves !

Hors ligne

 

#18 Thu 28 May 2009 17:18

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: Mise en place Tilecache - Tuiles roses Vmap0

Mais lorsqu'on met maxResolutions=291.882857 et levels=10 par exemple, Tile Cache n'est pas censé calculer automatiquement les resolustions suivantes ?


J'ai donc fait les modifs :

Code:

resolutions=291.8828571428571,145.94142857142856,72.97071428571428,36.48535714285714,18.24267857142857,9.121339285714285
maxresolution=291.8828571428571
levels=6

Maintenant, j'ai cette erreur An error occurred: Current x value 491357.011429 is too far from tile corner x 463498.022857 ??

Dernière modification par Maxime31 (Thu 28 May 2009 17:24)

Hors ligne

 

#19 Fri 29 May 2009 09:25

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: Mise en place Tilecache - Tuiles roses Vmap0

Re-bonjour à tous,

Je me permets de relancer le sujet d'hier soir :
Maintenant, j'ai cette erreur An error occurred: Current x value 491357.011429 is too far from tile corner x 463498.022857 ???

Hors ligne

 

#20 Fri 29 May 2009 10:19

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Mise en place Tilecache - Tuiles roses Vmap0

Bonjour,

C'est la partie la plus délicate. J'aurais du mal à te répondre mais je crois savoir que ce message provient d'une mauvaise résolution. D'autres experts pourront mieux te répondre (René-Luc ou Guillaume).

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#21 Fri 29 May 2009 10:24

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: Mise en place Tilecache - Tuiles roses Vmap0

Ok merci, je vais attendre leurs réponses.

Hors ligne

 

#22 Fri 29 May 2009 10:38

Guillaume Sueur
Participant assidu
Lieu: Toulouse
Date d'inscription: 23 Sep 2005
Messages: 331
Site web

Re: Mise en place Tilecache - Tuiles roses Vmap0

Bonjour,

Les coordonnées des tuiles demandées par OpenLayers ne correspondent pas à celles prévues par tilecache. Ceci est dû à une trop grande différence entre les bounding boxes de ton objet map d'un côté et de ton cache de l'autre. Essaie de les rendre cohérents, et de rajouter l'option extent_type=loose à la définition de ton cache pour autoriser le débordement des tuiles (car sinon, aux petites échelles, des tuiles peuvent manquer).

Cordialement,

Guillaume

Hors ligne

 

#23 Fri 29 May 2009 10:58

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: Mise en place Tilecache - Tuiles roses Vmap0

Bonjour,

J'ai rajouté extent_type sur mon cache :

Code:

[cache]
type=DiskCache
base=c:/ms4w/Apache/htdocs/tilefolder/
extent_type=loose

Mais j'ai toujours cette erreur... ??

Hors ligne

 

#24 Fri 29 May 2009 11:03

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Mise en place Tilecache - Tuiles roses Vmap0

Bonjour,

Selon Guillaume : 'Ceci est dû à une trop grande différence entre les bounding boxes de ton objet map d'un côté et de ton cache de l'autre'. Donc vérifie les et nettoie ton cache a chaque modification du fichier de configuration de TileCache.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#25 Fri 29 May 2009 11:21

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: Mise en place Tilecache - Tuiles roses Vmap0

Effectivement, les bounding boxes étaient mal définies puisque j'avais laissé d'anciennes valeurs dans mon objet map...
Désolé de vous avoir fait perdre du temps sur une erreur d'inattention.

Cependant, j'ai une autre erreur quand je teste l'url d'une des tuiles :

Code:

An error occurred: No module named Image
  File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Service.py", line 323, in cgiHandler
    format, image = service.dispatchRequest( params, path_info, req_method, host )
  File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Service.py", line 208, in dispatchRequest
    return self.renderTile(tile, params.has_key('FORCE'))
  File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Service.py", line 138, in renderTile
    data = layer.render(tile, force=force)
  File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Layer.py", line 435, in render
    image = self.renderMetaTile(metatile, tile)
  File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Layer.py", line 393, in renderMetaTile
    import StringIO, Image

Est-ce normal ?

Hors ligne

 

#26 Fri 29 May 2009 11:24

Guillaume Sueur
Participant assidu
Lieu: Toulouse
Date d'inscription: 23 Sep 2005
Messages: 331
Site web

Re: Mise en place Tilecache - Tuiles roses Vmap0

voilà. Maintenant installe le module python-imaging.

Hors ligne

 

#27 Fri 29 May 2009 11:30

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: Mise en place Tilecache - Tuiles roses Vmap0

Merci de ta réponse.

J'ai un nouveau message d'erreur :

Code:

An error occurred: HTTP Error 404: Not Found
  File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Service.py", line 323, in cgiHandler
    format, image = service.dispatchRequest( params, path_info, req_method, host )
  File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Service.py", line 208, in dispatchRequest
    return self.renderTile(tile, params.has_key('FORCE'))
  File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Service.py", line 138, in renderTile
    data = layer.render(tile, force=force)
  File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Layer.py", line 435, in render
    image = self.renderMetaTile(metatile, tile)
  File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Layer.py", line 395, in renderMetaTile
    data = self.renderTile(metatile)
  File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Layers\WMS.py", line 29, in renderTile
    tile.data, response = wms.fetch()
  File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Client.py", line 58, in fetch
    response = self.client.open(urlrequest)
  File "C:\Python26\lib\urllib2.py", line 389, in open
    response = meth(req, response)
  File "C:\Python26\lib\urllib2.py", line 502, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python26\lib\urllib2.py", line 427, in error
    return self._call_chain(*args)
  File "C:\Python26\lib\urllib2.py", line 361, in _call_chain
    result = func(*args)
  File "C:\Python26\lib\urllib2.py", line 510, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)

Question de config non ?

Hors ligne

 

#28 Fri 29 May 2009 12:28

Guillaume Sueur
Participant assidu
Lieu: Toulouse
Date d'inscription: 23 Sep 2005
Messages: 331
Site web

Re: Mise en place Tilecache - Tuiles roses Vmap0

En effet. Vérifie que tilecache peut accéder à la ressource que tu as spécifié pour la couche.
et teste d'abord la configuration de tilecache seul en utilisant, depuis le répertoire où se situe tilecache.cfg :

Code:

tilecache_seed.py [nom_couche] 0 1

ça te permettra de vérifier que le cache se construit bien. Ensuite tu pourras essayer de l'exploiter depuis OpenLayers.

Hors ligne

 

#29 Fri 29 May 2009 12:39

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: Mise en place Tilecache - Tuiles roses Vmap0

Euh je ne vois pas bien comment effectuer le test avec tilecache_seed.py ?

Et j'avais une autre question : est-ce normal que dans les fichiers .py de mon dossier tilecache, tous ont comme première ligne #!/usr/bin/python alors que dans le fichier tilecache.cgi, j'ai remplacé par #! C:/Python26/python.exe ?

Dernière modification par Maxime31 (Fri 29 May 2009 12:45)

Hors ligne

 

#30 Fri 29 May 2009 12:58

Guillaume Sueur
Participant assidu
Lieu: Toulouse
Date d'inscription: 23 Sep 2005
Messages: 331
Site web

Re: Mise en place Tilecache - Tuiles roses Vmap0

comme je l'ai indiqué. Tu lances (en ligne de commande) :

Code:

tilecache_seed.py [nom_couche] 0 1

depuis le répertoire où si situe tilecache.cfg. Eventuellement :

Code:

python.exe tilecache_seed.py [nom_couche] 0 1

si les .py ne sont pas associés à python, voire

Code:

c:\Python26\python.exe tilecache_seed.py [nom_couche] 0 1

si python n'est pas dans ton PATH.
La première ligne des fichiers python ne sert pas à grand'chose sous windows. Tu peux laisser les valeurs par défaut.

Hors ligne

 

Pied de page des forums

Powered by FluxBB