#1 Fri 24 July 2009 17:18
- ls
- Juste Inscrit !
- Date d'inscription: 10 Jun 2009
- Messages: 7
[Tilecache] pré-remplir le cache
Bonjour les gens,
J'utilise mapserver pour fournir des services web à OL, ça marche. J'essaie de mettre en place TileCache entre les deux, ça ne marche pas vraiment.
Un extrait du mapfile :
Code:
NAME "mon mapfile" IMAGETYPE PNG24 SIZE 600 300 EXTENT 400000.0 1700000.0 800000.0 2100000.0 UNITS METERS IMAGECOLOR 255 255 255 SHAPEPATH "\ms4w\apps\mesdonnees\" TRANSPARENT ON PROJECTION "init=epsg:32620" END OUTPUTFORMAT NAME 'sortie_png_agg' DRIVER AGG/PNG MIMETYPE "image/png" IMAGEMODE RGBA EXTENSION "png" TRANSPARENT ON FORMATOPTION INTERLACE=OFF END #couche vecteur limites des communes LAYER NAME "limcom" STATUS ON METADATA # pour WMS "wms_title" "limcomwms" # pour WFS "wfs_title" "limcomwfs" "gml_featureid" "nom" "gml_include_items" "all" END PROJECTION "init=epsg:32620" END DUMP TRUE TEMPLATE "bidon.html" TYPE POLYGON CONNECTIONTYPE postgis CONNECTION "user=postgres dbname=bd_test password=admin host=localhost" DATA "the_geom FROM limites_communes USING UNIQUE gid" CLASS STYLE COLOR 10 10 10 OUTLINECOLOR 200 200 200 END END END # Fin du layer (limites des communes)
Le tilecache.cfg :
Code:
[cache] type=DiskCache base=c:/ms4w/Apache/htdocs/tempTC [tc_limcom] type=WMSLayer url=http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/simple.map& layers=limcom bbox=400000.0,1700000.0,800000.0,2100000.0 srs=EPSG:32620 extent_type=loose resolutions=200,158.75,132.2916667,105.8333333,79.375,66.14583333,52.91666667,26.45833333,19.84375,13.22916667,10.58333333,7.9375,6.614583333,5.291666667,4.630208333,3.96875,3.704166667,3.307291667,2.645833333,2.116666667,1.984375,1.5875,1.322916667,1.058333333,0.79375,0.661458333,0.529166667,0.396875,0.264583333,0.132291667 extension=png
Pour OL :
Code:
var map = new OpenLayers.Map('map', {controls:[], maxExtent: new OpenLayers.Bounds(400000, 1700000, 800000, 2100000), units: 'm', resolutions:[0.132291667,0.264583333,0.396875,0.529166667,0.661458333,0.79375,1.058333333,1.322916667,1.5875,1.984375,2.116666667,2.645833333,3.307291667,3.704166667,3.96875,4.630208333,5.291666667,6.614583333,7.9375,10.58333333,13.22916667,19.84375,26.45833333,52.91666667,66.14583333,79.375,105.8333333,132.2916667,158.75,200], projection: "EPSG:32620"}); var ol_wms_tc = new OpenLayers.Layer.WMS( "OpenLayers TC", "http://localhost/tilecache/tilecache.cgi?", { layers: 'tc_limcom', SRS: 'EPSG:32620', FORMAT:'image/png' }, {transitionEffect:'resize'});
Quand je teste la carte OL, ma couche s'affiche et lors de la navigation, les images se créent dans htdocs/tempTC.
Mon problème survient lorsque je veux pré-remplir le cache, avec la commande suivante :
C:\ms4w\Apache\htdocs\tilecache>tilecache_seed.py "tc_limcom" 0 1
Ca tourne pendant 4-5 minutes en m'affichant ça dans l'invite de commande :
###### (0, 0, 0), (8, 8, 0)
Puis j'ai l'erreur suivante :
Code:
Traceback (most recent call last): File "C:\ms4w\Apache\htdocs\tilecache\tilecache_seed.py", line 9, in <module> TileCache.Client.main() File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Client.py", line 162, in main seed(svc, layer, map(int, args[1:3]), bboxlist , padding=options.padding, fo rce = options.force, reverse = options.reverse) File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Client.py", line 117, in seed svc.renderTile(tile,force=force) File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Service.py", line 138, in rend erTile data = layer.render(tile, force=force) File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Layer.py", line 443, in render return self.renderTile(tile) File "C:\ms4w\Apache\htdocs\tilecache\TileCache\Layers\WMS.py", line 29, in re nderTile 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:\Python25\lib\urllib2.py", line 387, in open response = meth(req, response) File "C:\Python25\lib\urllib2.py", line 498, in http_response 'http', request, response, code, msg, hdrs) File "C:\Python25\lib\urllib2.py", line 425, in error return self._call_chain(*args) File "C:\Python25\lib\urllib2.py", line 360, in _call_chain result = func(*args) File "C:\Python25\lib\urllib2.py", line 506, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) urllib2.HTTPError: HTTP Error 590: Proxy Error
C'est pas très explicite pour moi. Si quelqu'un a une idée...faut-il modifier quelque chose dans le tilecache_seed.py ? Est-ce un problème de configuration dans le fichier tilecache.cgi ? Est-ce que j'utilise mal la commande ?
Qu'est ce que c'est que cette histoire de Proxy alors que je suis en local ?
Merci d'avance de vos réponses
Loïc
Hors ligne
#2 Fri 24 July 2009 21:36
- BBarthur
- Participant actif
- Date d'inscription: 17 Jun 2009
- Messages: 57
Re: [Tilecache] pré-remplir le cache
Bonjour
En spécifiant le nombre de niveaux de zoom dans tilecache.cfg avec l'attribut:
Code:
levels=...
C'est pareil ?
Hors ligne
#3 Fri 24 July 2009 23:02
- ls
- Juste Inscrit !
- Date d'inscription: 10 Jun 2009
- Messages: 7
Re: [Tilecache] pré-remplir le cache
Re,
Oui, c'est pareil.
En fait, ce paramètre était présent dans mon fichier de configuration, puis je l'ai retiré après avoir lu ici http://geotribu.net/node/41 qu'il était ignoré si les résolutions étaient définies.
Merci quand même...
Loïc
Hors ligne
#4 Thu 27 August 2009 16:06
- Maxime31
- Participant assidu
- Date d'inscription: 3 Sep 2008
- Messages: 175
Re: [Tilecache] pré-remplir le cache
Je me permets de relancer le sujet parce que j'ai un peu le même problème avec cette commande tilecache_seed.py.
Voila ce que l'invite de commandes me renvoie :
Code:
C:\ms4w\Apache\htdocs\tilecache>tilecache_seed.py -b 10000,1600000,1200000,27000 00 -p 0 zones_inondables 0 4 ###### (0, 0, 0), (3, 3, 0) Cache hit: 10000.0,1600000.0,412285.714286,2002285.71429, Tile: x: 0, y: 0, z: 0 , time: 0.0, debug: True 00 (000000, 000000) = (10000.0000 1600000.0000 412285.7143 2002285.7143) [0.0000 s : 10000.000/s] 1/1 Traceback (most recent call last): File "C:\ms4w\Apache\htdocs\tilecache\tilecache_seed.py", line 9, in <module> TileCache.Client.main() File "C:/ms4w/Apache/htdocs/tilecache\TileCache\Client.py", line 162, in main seed(svc, layer, map(int, args[1:3]), bboxlist , padding=options.padding, fo rce = options.force, reverse = options.reverse) File "C:/ms4w/Apache/htdocs/tilecache\TileCache\Client.py", line 117, in seed svc.renderTile(tile,force=force) File "C:/ms4w/Apache/htdocs/tilecache\TileCache\Service.py", line 140, in rend erTile else: raise Exception("Zero length data returned from layer.") Exception: Zero length data returned from layer.
Est-ce que quelqu'un connait cette erreur et sait la résoudre ?
Hors ligne
#5 Fri 28 August 2009 13:16
- Maxime31
- Participant assidu
- Date d'inscription: 3 Sep 2008
- Messages: 175
Re: [Tilecache] pré-remplir le cache
Personne ?
Hors ligne