#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 ErrorC'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


