[Tilecache] cascading TileCache / WMS layers cached individually

Pierre GIRAUD bluecarto at gmail.com
Thu Apr 3 05:38:19 EDT 2008


Hello,

Context :

  We have a project with one OL WMS layer combining several WMS layers
(coma separated layers list param in the WMS getMap service).
By using MapFish layerTree widget (and OL mergeNewParams), the list of
WMS layers may be changed by the user. This said, it's obvious that we
can't get this OL layer cached. One can easily imagine that for 3
different WMS layers, there are 4*3*2*1=24 possible combinations.

  But as performance is really important, we propose to find an
alternative to that.

Proposal :

  Each WMS layers could be cached individually and then merged by a
WMS client also being a WMS server for OL.
  This way, no geospatial data would be processed. Only image
transformations (blending) would be required.

Tests :

  To do this, we had the idea to use UMN Mapserver as WMS Client for
TileCache. We tried it this way :
  The mapfile includes a layer pointing to a tileCache layer.
---------------------
LAYER
    NAME "bar"
    TYPE RASTER
    CONNECTION "tilecache/tilecache.py"
    CONNECTIONTYPE WMS
    METADATA
      "wms_srs"             "EPSG:4326"
      "wms_name"            "bar"
      "wms_server_version"  "1.1.1"
      "wms_format"          "image/png"
    END
END
-----------------------
  And then, in OpenLayers we create a WMS layer pointing to the MapServer layer.
  If several layers are requested, MapServer would request all WMS
services (cached with TileCache) and then would merge (blend) the
received images.

Problems :

  The first issue we encounter is that the bbox sent in the MapServer
request to TileCache [1] differs slightly from the OL request to
MapServer [2]. And because it is different, TileCache complains
because the resolution doesn't match with its configuration.

  The second problem is that MapServer is able to know that different
layers come from the same WMS service and sends a single request to
this service.

I would be pleased if someone could point me to a solution for that.
I would also appreciate if you also think that it can enhance
performances for the described use-case or if it is worth having it.
If so, is it something TileCache could adress itself ?

Regards,
Pierre

[1] &BBOX=-179.296875,-89.296875,179.296875,269.296875
[2] &BBOX=-180,-90,180,270



More information about the Tilecache mailing list