#1 Mon 03 May 2010 11:10
- Sitelle
- Participant occasionnel
- Date d'inscription: 1 Feb 2009
- Messages: 31
Configuration TileCache en mod_python sous Linux
Bonjour,
Je retrouve un problème à configurer TileCache en mod_python.
J’ai regardé dans les différents posts sur ce forum mais je commence un peu à me perdre. Quelqu’un saurait’ il m’apporter quelques conseils ?
Voici ma config actuelle (sous linux) :
J’ai mon fichier tilecache.cfg (/etc/tilecache.cfg) qui comporte les lignes suivantes (en plus de la couche [basic]) :
Code:
[cache] type=Disk base=/CACHE/
En mettant DiskCache à la place de Disk je n’ai pas l’impression que ça change grand-chose.
Dans /etc/apache2/httpd.conf j’ai les lignes suivantes :
Code:
Alias /tilecache /var/www/html/tilecache/ <Directory "/var/www/html/tilecache/"> AddHandler python-program .py PythonHandler TileCache.Service PythonOption TileCacheConfig /etc/tilecache.cfg PythonPath "['/var/www/html/tilecache/'] + sys.path" PythonDebug On Order allow,deny Allow from all </Directory>
Là je me pose une question : « Faut-il pointer vers le répertoire tilecache comprenant tilecache.py, tilecache_seed.py, le répertoire TileCache ou vers ce dernier répertoire comprenant Cache.py, Service.py … ?
Et enfin sous /var/www/html/tilecache/tilecache.py :
Code:
#!/usr/bin/env python from TileCache import Service, cgiHandler, cfgfiles if __name__ == '__main__': svc = Service.load(*cfgfiles) cgiHandler(svc)
J’ai l’impression qu’en remplaçant /usr/bin/env python par /usr/bin/python dans tilecache.py ça ne change rien.
Lorsque je tape http://xxxxxx.fr/html/tilecache/tilecache.py? Dans un navigateur j’ai bien :
<Services>
<TileMapService version="1.0.0" href="http://xxxxxxxx.fr/1.0.0/"/>
</Services>
Ce qui indique que le module python d’Apache fonctionne.
Par contre lorsque je veux ouvrir l’exemple Vmap0 mes tuiles s’affichent en rose et quand j’essaie d’afficher une dalle j’ai l’erreur suivante :
An error occurred: [Errno 13] Permission denied: '/CACHE/basic'
File "/var/www/html/tilecache/TileCache/Service.py", line 256, in modPythonHandler
host )
File "/var/www/html/tilecache/TileCache/Service.py", line 208, in dispatchRequest
return self.renderTile(tile, params.has_key('FORCE'))
File "/var/www/html/tilecache/TileCache/Service.py", line 139, in renderTile
if (data): image = self.cache.set(tile, data)
File "/var/www/html/tilecache/TileCache/Caches/Disk.py", line 77, in set
self.makedirs(dirname)
File "/var/www/html/tilecache/TileCache/Caches/Disk.py", line 34, in makedirs
raise E
Et lorsque je tape la commande /var/www/html/tilecache/tilecache_seed.py [basic] 1 2 dans une invite de commandes j’ai l’erreur suivante :
-bash: line 13: /var/www/html/tilecache/tilecache_seed.py: Permission denied
Dans un post précédant (http://georezo.net/forum/viewtopic.php? … lecache.py) sur le même sujet, Guillaume Sueur indiquait :
Tilecache doit évidemment avoir été installé sur le système (python setup.py install), et pas uniquement décompressé dans un répertoire quelconque !
Mais je ne comprends pas bien en quoi cela consiste.
Quelqu’un peut-il m’avancer ?
Merci d’avance pour toute aide.
Estelle
Hors ligne
#2 Mon 03 May 2010 11:44
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Configuration TileCache en mod_python sous Linux
Bonjour,
Je crois que ton install est OK, puisque TileCache répond bien, mais que ton répertoire /CACHE/ n'a pas les droits en écriture pour l'utilisateur apache (ou www-data selon les distros).
Guillaume
Hors ligne
#3 Mon 03 May 2010 11:47
Re: Configuration TileCache en mod_python sous Linux
Bonjour,
Pour faire suite au message de Guillaume, ton répertoire doit être sous l'utilisateur www-data (ou du moins l'utilisateur utilisé pour le service Apache).
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
#4 Mon 03 May 2010 11:47
- Sitelle
- Participant occasionnel
- Date d'inscription: 1 Feb 2009
- Messages: 31
Re: Configuration TileCache en mod_python sous Linux
Merci Guillaume et Yves.
Je vais regarder de ce côté.
Cela pourrait-il être dû à un manque de place sur le disque ?
Dernière modification par Sitelle (Mon 03 May 2010 11:47)
Hors ligne
#5 Tue 04 May 2010 09:38
- Sitelle
- Participant occasionnel
- Date d'inscription: 1 Feb 2009
- Messages: 31
Re: Configuration TileCache en mod_python sous Linux
Effectivement c'était bien une question de droit d'écriture de l'utilisateur www-data. Merci.
Pour le manque de place c'est l'erreur suivante :
An error occurred: [Errno 28] No space left on device: '/CACHE/basic'
A laquelle je vais devoir remédier à présent
Hors ligne
#6 Wed 26 May 2010 10:35
- Sitelle
- Participant occasionnel
- Date d'inscription: 1 Feb 2009
- Messages: 31
Re: Configuration TileCache en mod_python sous Linux
Bonjour,
Comme tout le monde, je souhaiterai à présent mettre mes propres wms en cache.
Tout fonctionne bien avec le fond Metacarta mais avec mes propres données, ça coince.
Mes dalles affichées sont roses à toutes les échelles et quand j'essaie d'accéder à l'url d'une dalle, le navigateur m'indique juste que le lien semble brisé.
Pour info l'url de la dalle propose cette requête :
Quand j'essaie de générer le cache avec tilecache_seed ça ne fonctionne pas non plus (alors que ça fonctionne pour metacarta) et j'ai l'erreur suivante :
/etc$ sudo -u www-data /var/www/html/tilecache/tilecache_seed.py test 0 2
Traceback (most recent call last):
File "/var/www/html/tilecache/tilecache_seed.py", line 9, in <module>
TileCache.Client.main()
File "/var/www/html/tilecache/TileCache/Client.py", line 153, in main
layer = svc.layers[args[0]]
KeyError: 'test'
Du coup je ne comprends pas bien à quoi ça peut être dû.
Petites précisions :
Lorsque j'essaie d'afficher mon mapfile avec l'url suivante ça affiche bien mon image.
Mon mapfile est le suivant :
Code:
MAP NAME "mywms" IMAGETYPE PNG EXTENT 343974 1708994 1030912 2163897 SIZE 800 600 IMAGECOLOR 255 255 255 SHAPEPATH "/var/www/dev/" TRANSPARENT on PROJECTION "init=epsg:27572" END WEB IMAGEPATH "/CACHE/" IMAGEURL "/ms_tmp/" METADATA "wms_title" "rast1" "wms_onlineresource" "http://xxxxxxxxxxxxxxxxxxxxxxxxxxx.fr/cgi-bin/mapserv?map=/var/www/dev/mapfile.map&" "wms_srs" "epsg:27572" "wms_format" "image/png" END TEMPLATE "/var/www/dev/modele.html" END OUTPUTFORMAT NAME "png" DRIVER "AGG/PNG" MIMETYPE "image/png" IMAGEMODE RGBA FORMATOPTION "QUANTIZE_FORCE=ON" FORMATOPTION "QUANTIZE_DITHER=OFF" FORMATOPTION "QUANTIZE_COLORS=256" FORMATOPTION "INTERLACE=OFF" TRANSPARENT ON END #################Layer ###################### LAYER NAME rast1 GROUP rast1 METADATA "wms_title" "rast1" "wms_srs" "EPSG:27572" "wms_format" "image/png" END STATUS OFF TILEINDEX scan25 TILEITEM "location" TYPE RASTER CLASS STYLE # COLOR 245 245 245 OUTLINECOLOR 0 0 0 # SYMBOL 'circle' # SIZE 10 END #TEMPLATE "void" END END ####### Fin du Layer ########## END
La déclaration de la couche dans tilecache.cfg est la suivante :
Code:
[test] type=WMS url=http://xxxxxxxxxxxxxxxxxxx.fr/cgi-bin/mapserv?map=/var/www/dev/scan25.map& extension=png srs=EPSG:27572
Et dans mon fichier index.html :
Code:
function init(){ map = new OpenLayers.Map( $('map'), {'maxResolution': 3527.775872778807, projection: new OpenLayers.Projection("EPSG:27572")}); layer = new OpenLayers.Layer.WMS( "Scan25", "http://xxxxxxxxxxxxx.fr/html/tilecache/tilecache.py?", {layers: 'test', format: 'image/png' } ); map.addLayer(layer); map.addControl(new OpenLayers.Control.Permalink()); if (!map.getCenter()) map.zoomToMaxExtent(); }
Merci d'avance pour toute aide.
Estelle
Dernière modification par Sitelle (Wed 26 May 2010 10:36)
Hors ligne
#7 Wed 26 May 2010 11:42
Re: Configuration TileCache en mod_python sous Linux
Bonjour,
Quelle est la configuration du vhost du serveur Apache ?
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
#8 Wed 26 May 2010 15:04
- Sitelle
- Participant occasionnel
- Date d'inscription: 1 Feb 2009
- Messages: 31
Re: Configuration TileCache en mod_python sous Linux
Alors...
Après avoir fait
find -name *vhost*
On me présente 4 fichiers :
./var/log/apache2/other_vhosts_access.log
./etc/apache2/mods-available/vhost_alias.load
./usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-vhosts.conf
./usr/lib/apache2/modules/mod_vhost_alias.so
./var/log/apache2/other_vhosts_access.log
est vide
Dans le fichier suivant :
./etc/apache2/mods-available/vhost_alias.load
J'ai la ligne :
Code:
LoadModule vhost_alias_module /usr/lib/apache2/modules/mod_vhost_alias.so
Mais je n'arrive pas à éditer mod_vhost_alias.so
Et dans ./usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-vhosts.conf
J'ai :
Code:
# # Virtual Hosts # # If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most configurations # use only name-based virtual hosts so the server doesn't need to worry about # IP addresses. This is indicated by the asterisks in the directives below. # # Please see the documentation at # <URL:http://httpd.apache.org/docs/2.2/vhosts/> # for further details before you try to setup virtual hosts. # # You may use the command line option '-S' to verify your virtual host # configuration. # # Use name-based virtual hosting. # NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for all requests that do not # match a ServerName or ServerAlias in any <VirtualHost> block. # <VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/docs/dummy-host.example.com" ServerName dummy-host.example.com ServerAlias www.dummy-host.example.com ErrorLog "/var/log/apache2/dummy-host.example.com-error_log" CustomLog "/var/log/apache2/dummy-host.example.com-access_log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/docs/dummy-host2.example.com" ServerName dummy-host2.example.com ErrorLog "/var/log/apache2/dummy-host2.example.com-error_log" CustomLog "/var/log/apache2/dummy-host2.example.com-access_log" common </VirtualHost>
Mais je n'ai pas l'impression d'avoir regardé les bons fichiers. En fait ce n'est pas moi qui ai fait l'installation d'Apache.
Hors ligne
#9 Wed 26 May 2010 15:18
- Sitelle
- Participant occasionnel
- Date d'inscription: 1 Feb 2009
- Messages: 31
Re: Configuration TileCache en mod_python sous Linux
Ah tiens aussi dans /etc/apache2/sites_enabled/000-default j'ai :
Code:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> <Directory /var/www/tilecache/> AddHandler python-program .py PythonHandler TileCache.Service PythonOption TileCacheConfig /etc/tilecache.cfg </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from xxx.0.0.0/zzz.0.0.0 ::1/128 </Directory> </VirtualHost>
Hors ligne
#10 Wed 26 May 2010 16:33
Re: Configuration TileCache en mod_python sous Linux
C'est bien le deuxième post qui m'intéressé
Code:
</Directory> <Directory /var/www/tilecache/> AddHandler python-program .py PythonHandler TileCache.Service PythonOption TileCacheConfig /etc/tilecache.cfg </Directory>
Est ce que /etc/tilecache.cfg est bien le fichier de configuration que tu utilises ? Est ce que ton site est bien situé dans /var/www/ et qu'il n'y a pas d'autres vhost ?
Est ce que mod_python est bien installé ? Regarde dans /etc/apache/mod_enabled/ s'il n'y a pas mod_python, regarde dans mod-available/ s'il y est lance a2enmod python dans une console, sinon installe le et lance la commande a2enmod 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
#11 Wed 26 May 2010 17:47
- Sitelle
- Participant occasionnel
- Date d'inscription: 1 Feb 2009
- Messages: 31
Re: Configuration TileCache en mod_python sous Linux
Merci Yves.
Alors :
Mon fichier de configuration est bien tilecache.cfg.
Mon site est sous /var/www/html/tilecache/
Pour les autres questions il faut que je fasse une recherche plus approfondie.
Est-ce que, si je n'ai pas de mod_python ni dans etc/apach/mod_enabled ni dans etc/apach/mod_available, alors ça veut dire que le mod_python n'est pas bien installé ?
Et est-ce que cela fonctionnerai quand même avec Metacarta si le mod_python était mal installé ?
Dernière modification par Sitelle (Wed 26 May 2010 17:54)
Hors ligne
#12 Wed 26 May 2010 18:34
Re: Configuration TileCache en mod_python sous Linux
Et est-ce que cela fonctionnerai quand même avec Metacarta si le mod_python était mal installé ?
Que veux tu dire pour Metacarta ?
Tu peux publier ton fichier /etc/tilecache.cfg stp ?
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
#13 Wed 26 May 2010 19:56
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Configuration TileCache en mod_python sous Linux
Bonjour,
Si le tilecache_seed ne marche pas, c'est qu'il y a un problème dans le fichier de conf. Il ne manquerait pas les resolutions pour ton layer par hasard ?
Hors ligne
#14 Thu 27 May 2010 09:35
- Sitelle
- Participant occasionnel
- Date d'inscription: 1 Feb 2009
- Messages: 31
Re: Configuration TileCache en mod_python sous Linux
Voici mon fichier tilecache.cfg :
Code:
# Configuration for MC TileCache # TileCache can load Layers or Caches from anywhere in sys.path. If you # prefer to load from somewhere which is *not* on sys.path, you can use # the path configuration paramter to set a comma-seperated list of # filesystem paths which you want prepended to sys.path. #[tilecache_options] #path=/home/you # Some TileCache options are controlled by metadata. One example is the # crossdomain_sites option, which allows you to add sites which are then # included in a crossdomain.xml file served from the root of the TileCache #[metadata] #crossdomain_sites=openstreetmap.org,openaerialmap.org # [cache] section examples: (mandatory!) # # Disk: # [cache] # type=Disk (works out of the box) # base=<full path to cache directory> # # Memcached: # [cache] # type=Memcached (you'll need memcache.py and memcached running!) # servers=192.168.1.1:11211 # # Amazon S3: # [cache] # type=AWSS3 # access_key=your_access_key # secret_access_key=your_secret_access_key [cache] type=DiskCache base=/CACHE/ # [layername] -- all other sections are named layers # # type={MapServerLayer,WMSLayer} # *** if you want to use MapServerLayer, you *must* have Python mapscript # installed and available *** # # mapfile=<full path to map file> # url=<full URL of WMS> # layers=<layer>[,<layer2>,<layer3>,...] # *** optional iff layername if what # your data source calls the layer ** # extension={png,jpeg,gif} *** defaults to "png" *** # size=256,256 *** defaults to 256x256 *** # bbox=-180.0,-90.0,180.0,90.0 *** defaults to world in lon/lat *** # srs=EPSG:4326 *** defaults to EPSG:4326 *** # levels=20 *** defaults to 20 zoom levels *** # resolutions=0.1,0.05,0.025,... *** defaults to global profile *** # metaTile=true *** metatiling off by default # requires python-imaging *** # metaSize=5,5 *** size of metatile in tiles # defaults to 5 x 5 *** # metaBuffer=10 *** size of metatile buffer in px *** # mime_type=image/png *** by default, the mime type is image/extension *** # *** but you may want to set extension=png8 for *** # *** GeoServer WMS, and this lets you set the *** # *** mime_type seperately. *** # The following is a demonstration of a layer which would be generated # according to the 'Google projection'. This uses the standard values for # a spherical mercator projection for maxextent, maxresolution, units # and srs. # [google-tiles] # type=WMS # url=http://localhost/cgi-bin/mapserv?map=/mapdata/world.map # layers=world # spherical_mercator=true # Standard MapServer layer configuration. # [vmap0] # type=MapServer # layers=vmap0 # mapfile=/var/www/vmap0.map # Rendering OpenStreetMap data with Mapnik; should use metaTiling to # avoid labels across tile boundaries # [osm] # type=Mapnik # mapfile=/home/user/osm-mapnik/osm.xml # spherical_mercator=true # tms_type=google # metatile=yes [rast1] type=WMS url=http://xxxxxxxxxxxxxxxxxxxxxxxx.fr/cgi-bin/mapserv?map=/var/www/dev/mapfile.map& extension=png srs=EPSG:27572
Quand je dis Metacarta c'est le fond [basic] d'OpenLayers proposé pour tester le bon fonctionnement de TileCache.
Guillaume, je vais essayer en rajoutant les résolutions.
Dernière modification par Sitelle (Thu 27 May 2010 09:36)
Hors ligne
#15 Thu 27 May 2010 11:43
- Sitelle
- Participant occasionnel
- Date d'inscription: 1 Feb 2009
- Messages: 31
Re: Configuration TileCache en mod_python sous Linux
J'ai ajouté les résolutions dans le fichier de configuration :
Code:
# Configuration for MC TileCache # TileCache can load Layers or Caches from anywhere in sys.path. If you # prefer to load from somewhere which is *not* on sys.path, you can use # the path configuration paramter to set a comma-seperated list of # filesystem paths which you want prepended to sys.path. #[tilecache_options] #path=/home/you # Some TileCache options are controlled by metadata. One example is the # crossdomain_sites option, which allows you to add sites which are then # included in a crossdomain.xml file served from the root of the TileCache #[metadata] #crossdomain_sites=openstreetmap.org,openaerialmap.org # [cache] section examples: (mandatory!) # # Disk: # [cache] # type=Disk (works out of the box) # base=<full path to cache directory> # # Memcached: # [cache] # type=Memcached (you'll need memcache.py and memcached running!) # servers=192.168.1.1:11211 # # Amazon S3: # [cache] # type=AWSS3 # access_key=your_access_key # secret_access_key=your_secret_access_key [cache] type=DiskCache base=/CACHE/ # [layername] -- all other sections are named layers # # type={MapServerLayer,WMSLayer} # *** if you want to use MapServerLayer, you *must* have Python mapscript # installed and available *** # # mapfile=<full path to map file> # url=<full URL of WMS> # layers=<layer>[,<layer2>,<layer3>,...] # *** optional iff layername if what # your data source calls the layer ** # extension={png,jpeg,gif} *** defaults to "png" *** # size=256,256 *** defaults to 256x256 *** # bbox=-180.0,-90.0,180.0,90.0 *** defaults to world in lon/lat *** # srs=EPSG:4326 *** defaults to EPSG:4326 *** # levels=20 *** defaults to 20 zoom levels *** # resolutions=0.1,0.05,0.025,... *** defaults to global profile *** # metaTile=true *** metatiling off by default # requires python-imaging *** # metaSize=5,5 *** size of metatile in tiles # defaults to 5 x 5 *** # metaBuffer=10 *** size of metatile buffer in px *** # mime_type=image/png *** by default, the mime type is image/extension *** # *** but you may want to set extension=png8 for *** # *** GeoServer WMS, and this lets you set the *** # *** mime_type seperately. *** # The following is a demonstration of a layer which would be generated # according to the 'Google projection'. This uses the standard values for # a spherical mercator projection for maxextent, maxresolution, units # and srs. # [google-tiles] # type=WMS # url=http://localhost/cgi-bin/mapserv?map=/mapdata/world.map # layers=world # spherical_mercator=true # Standard MapServer layer configuration. # [vmap0] # type=MapServer # layers=vmap0 # mapfile=/var/www/vmap0.map # Rendering OpenStreetMap data with Mapnik; should use metaTiling to # avoid labels across tile boundaries # [osm] # type=Mapnik # mapfile=/home/user/osm-mapnik/osm.xml # spherical_mercator=true # tms_type=google # metatile=yes [rast1] type=WMS url=http://xxxxxxxxxxxxxxxxxxxxxxxxxxxx.fr/cgi-bin/mapserv?map=/var/www/dev/mapfile.map& extension=png resolutions=0.031747816880420915, 0.009524345064126272, 0.004762172532063136, 0.0015873908440210457, 0.0006349563376084181, 0.00031747816880420905, 0.00015873908440210453, 0.00007936954220105226, 0.000047621725320631366, 0.000031747816880420904, 0.000023810862660315683 levels=11 maxresolution=0.031747816880420915 srs=EPSG:27572
Voici un extrait de mon fichier index.html :
Code:
function init(){ map = new OpenLayers.Map( $('map'), {'maxResolution': 0.031747816880420915, projection: new OpenLayers.Projection("EPSG:27572"),scales: [7500,10000,15000,25000,50000, 100000, 200000, 500000,1500000,3000000,10000000]}); layer = new OpenLayers.Layer.WMS( "Scan25", "http://xxxxxxxxxxxxxxxxxxxx.fr/html/tilecache/tilecache.py?", {layers: 'rast1', format: 'image/png' } ); map.addLayer(layer); map.addControl(new OpenLayers.Control.Permalink()); if (!map.getCenter()) map.zoomToMaxExtent(); }
Et maintenant j'ai des dalles noires qui s'affichent et qui se crée également dans mon cache...
Idem avec tilecache_seed.
Dernière modification par Sitelle (Thu 27 May 2010 11:58)
Hors ligne
#16 Thu 27 May 2010 12:03
Re: Configuration TileCache en mod_python sous Linux
Bonjour,
Il manque le nom de la couche également :
Code:
[rast1] type=WMS url=http://xxxxxxxxxxxxxxxxxxxxxxxxxxxx.fr/cgi-bin/mapserv?map=/var/www/dev/mapfile.map& layers=rast1 extension=png resolutions=0.031747816880420915, 0.009524345064126272, 0.004762172532063136, 0.0015873908440210457, 0.0006349563376084181, 0.00031747816880420905, 0.00015873908440210453, 0.00007936954220105226, 0.000047621725320631366, 0.000031747816880420904, 0.000023810862660315683 levels=11 maxresolution=0.031747816880420915 srs=EPSG:27572
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
#17 Thu 27 May 2010 13:48
- Sitelle
- Participant occasionnel
- Date d'inscription: 1 Feb 2009
- Messages: 31
Re: Configuration TileCache en mod_python sous Linux
Merci de votre aide Guillaume et Yves.
Le fait d'ajouter layers=rast1 dans tileache.cfg ne semble pas changer grand chose.
Dans tilecache_seed j'ai 2 types d'info :
Code:
Cache miss: 169.47996822,-90.0,177.607409341,-81.8725588786, Tile: x: 43, y: 0, z: 0, time: 0.0467131137848 Cache miss: 177.607409341,-90.0,185.734850462,-81.8725588786, Tile: x: 44, y: 0, z: 0, time: 0.0469460487366 Cache miss: -180.0,-81.8725588786,-171.872558879,-73.7451177572, Tile: x: 0, y: 1, z: 0, time: 0.0467920303345 Cache miss: -171.872558879,-81.8725588786,-163.745117757,-73.7451177572, Tile: x: 1, y: 1, z: 0, time: 0.046756029129
Code:
00 (000028, 000000) = (47.5684 -90.0000 55.6958 -81.8726) [0.0472s : 21.099/s] 29/968 00 (000029, 000000) = (55.6958 -90.0000 63.8232 -81.8726) [0.0469s : 21.106/s] 30/968 00 (000030, 000000) = (63.8232 -90.0000 71.9507 -81.8726) [0.0472s : 21.108/s] 31/968 00 (000031, 000000) = (71.9507 -90.0000 80.0781 -81.8726) [0.0457s : 21.131/s] 32/968 00 (000032, 000000) = (80.0781 -90.0000 88.2056 -81.8726) [0.0470s : 21.136/s] 33/968 00 (000033, 000000) = (88.2056 -90.0000 96.3330 -81.8726) [0.0468s : 21.142/s] 34/968 00 (000034, 000000) = (96.3330 -90.0000 104.4604 -81.8726) [0.0471s : 21.144/s] 35/968 00 (000035, 000000) = (104.4604 -90.0000 112.5879 -81.8726) [0.0469s : 21.150/s] 36/968
Faut-il que je définisse précisément ma bbox ?
Hors ligne
#18 Thu 27 May 2010 17:08
- Sitelle
- Participant occasionnel
- Date d'inscription: 1 Feb 2009
- Messages: 31
Re: Configuration TileCache en mod_python sous Linux
Ah !
Pour certaines échelles de zoom et pour certaines dalles j'ai l'erreur suivante :
An error occurred: HTTP Error 500: Internal Server Error
File "/var/www/html/tilecache/TileCache/Service.py", line 256, in modPythonHandler
host )
File "/var/www/html/tilecache/TileCache/Service.py", line 208, in dispatchRequest
return self.renderTile(tile, params.has_key('FORCE'))
File "/var/www/html/tilecache/TileCache/Service.py", line 138, in renderTile
data = layer.render(tile, force=force)
File "/var/www/html/tilecache/TileCache/Layer.py", line 443, in render
return self.renderTile(tile)
File "/var/www/html/tilecache/TileCache/Layers/WMS.py", line 29, in renderTile
tile.data, response = wms.fetch()
File "/var/www/html/tilecache/TileCache/Client.py", line 58, in fetch
response = self.client.open(urlrequest)
File "/usr/lib/python2.5/urllib2.py", line 387, in open
response = meth(req, response)
File "/usr/lib/python2.5/urllib2.py", line 498, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.5/urllib2.py", line 425, in error
return self._call_chain(*args)
File "/usr/lib/python2.5/urllib2.py", line 360, in _call_chain
result = func(*args)
File "/usr/lib/python2.5/urllib2.py", line 506, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
Est-ce que ça vous parle ?
Hors ligne
#19 Fri 28 May 2010 08:40
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Configuration TileCache en mod_python sous Linux
Hello,
Essaie de lire un peu les paramètres expliqués dans le tilecache.cfg. Il y a par exemple :
# bbox=-180.0,-90.0,180.0,90.0 *** defaults to world in lon/lat
ce qui veut dire que si tu ne précises pas de bbox, il utilisera ces valeurs, qui sont évidemment incompatibles avec du 27572. Le retour du tilecache_seed.py montre bien les extents sur lesquelles les tuiles sont appelées.
Une fois que tu auras renseigné une bbox correcte en EPSG:27572, mets éventuellement extent_type=loose pour autoriser des requêtes en dehors de ta bbox. ça peut être utile aux petites échelles, quand la vue globale dans ton client dépasse les limites de la donnée en cache.
Bonne continuation
Guillaume
Hors ligne
#20 Fri 28 May 2010 15:39
- Sitelle
- Participant occasionnel
- Date d'inscription: 1 Feb 2009
- Messages: 31
Re: Configuration TileCache en mod_python sous Linux
ça fonctionne !
Effectivement le paramètre bbox est très important.
Voici au final les paramètres du tilecache.cfg :
Code:
[rast1] type=WMS url=http://xxxxxxxxxxxxxxxxxxxxxxxxxx.fr/cgi-bin/mapserv?map=/var/www/html/tilecache/mapfile.map& layers=rast1 extension=png bbox=343974,1708994,1030912,2163897 extent_type=loose srs=EPSG:27572 levels=11 resolutions=3527.775872778807, 1058.332761833642, 529.166380916821, 176.38879363894034, 70.55551745557612, 35.27775872778806, 17.63887936389403, 8.819439681947015, 5.291663809168209, 3.527775872778806, 2.6458319045841043 maxresolution=3527.775872778807
Il est aussi important en fait de définir les mêmes paramètres dans le map d'OpenLayers :
Code:
function init(){ map = new OpenLayers.Map( $('map'), {'maxResolution': 3527.775872778807, projection: new OpenLayers.Projection("EPSG:27572"), scales: [7500,10000,15000,25000,50000, 100000, 200000, 500000,1500000,3000000,10000000], maxExtent: new OpenLayers.Bounds(343974,1708994,1030912,2163897), units:"m"}); layer = new OpenLayers.Layer.WMS( "Scan25","http://xxxxxxxxxxxxx.fr/html/tilecache/tilecache.py?", {layers: 'rast1', format: 'image/png' } ); map.addLayer(layer); map.addControl(new OpenLayers.Control.Permalink()); if (!map.getCenter()) map.zoomToMaxExtent(); }
Merci encore à vous deux et bon we.
Estelle
Hors ligne