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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

 

Pied de page des forums

Powered by FluxBB