On 9/3/2013 5:32 PM, Schweitzer, Peter wrote:
My thanks to Stephen and Andreas!

Per Stephen's advice, I modified the URL given in the <http> element
to point directly at the mapserver executable.  Per Andreas's advice,
I've modified my OpenLayers interface to use the mapcache TMS for
these data.  Is there a reason why I should prefer the WMS to the TMS
other than a wish to conform to OGC specs?

WMS is not a tile protocol per say, WMTS is and TMS is etc. While you can force WMS requests to return just a tile, if the request is off a little then extra processing takes place to assemble the request from the tiles. There is no reason that you can not use WMS and request arbitrary images from mapcache and it will in fact honor those requests by stitching together the tiles needed and cropping them to your request, but these requests are not very useful from a browser caching point of view. The whole idea about tiles is the they are cachable in the browser and reuseable which cuts down on the server requests and computation.

-Steve W

Peter

On Mon, Sep 2, 2013 at 5:26 AM, Eichner, Andreas - SID-NLKM
<[email protected]> wrote:

Good news: it works. But your client needs to be configured to use the cache
layer. Currently you still use the source WMS. Since you have the demo service
of mapcache enabled, you can check this page 
http://mrdata.usgs.gov/mapcache/demo/tms
Let your browser show the page source and you can copy-paste the layer 
constructor:

var sgmc_WGS84_tms_layer = new OpenLayers.Layer.TMS( "sgmc-WGS84-TMS",
         "http://mrdata.usgs.gov/mapcache/tms/";,
         { layername: 'sgmc@WGS84', type: "png", serviceVersion:"1.0.0",
           gutter:0,buffer:0,isBaseLayer:true,transitionEffect:'resize',
           tileOrigin: new OpenLayers.LonLat(-180.000000,-90.000000),
           
resolutions:[0.70312500000000000000,0.35156250000000000000,0.17578125000000000000,0.08789062500000000000,0.04394531250000000000,0.02197265625000000000,0.01098632812500000000,0.00549316406250000000,0.00274658203125000000,0.00137329101562500000,0.00068664550781250000,0.00034332275390625000,0.00017166137695312500,0.00008583068847656250,0.00004291534423828120,0.00002145767211914060,0.00001072883605957030,0.00000536441802978516],
           zoomOffset:0,
           units:"dd",
           maxExtent: new 
OpenLayers.Bounds(-180.000000,-90.000000,180.000000,90.000000),
           projection: new OpenLayers.Projection("EPSG:4326".toUpperCase()),
           sphericalMercator: false
         }
     );
     map.addLayer(sgmc_WGS84_tms_layer)

Usually it is safe to omit most of the arguments as they are defaults or derived from the map 
object, like "serviceVersion" and "resolutions".


-----Ursprüngliche Nachricht-----
Von: [email protected] im Auftrag von Schweitzer, Peter
Gesendet: Fr 30.08.2013 23:50
An: [email protected]
Betreff: [mapserver-users] mapcache config confusion

Help!

I am trying to use mapcache, but I fear that I may have misunderstood
the documentation.  Can someone help correct my misimpressions?

I'm running a mapserver (6.2.0) instance with 113 WMS services.  Most
don't really need caching because the data are simple or small.  One
really does, because it is a geologic map of the continental US at
1:500k scale, with 320,000 polygons and 260,000 fault lines, and takes
some time to render as map images.

I have a complicating factor.  I'm using a simplified URL to access
the map services, with an Apache rewrite rule like that rewrites the
incoming URL http://mrdata.usgs.gov/services/sgmc-3857 to
http://mrdata.usgs.gov/cgi-bin/mapserv?map=/mnt/mrt/map-files/sgmc-3857.map&;...
  This works nicely for OpenLayers.

What I'd like to have happen is for the web server to provide cached
images of these data rather than generating them on every web hit.

So first of all, is mapcache the right tool for this task?

Assuming that's right, I'm confused about the <url> element in the
<source> section.  Should this be the existing WMS on my system?
Should it be the URL sent by the user, prior to the apache rewrite
rule?  Or should it be the URL that is the result of the rewrite rule?

An OpenLayers interface that uses these data is at
http://mrdata.usgs.gov/general/map.html  The layer in question is the
"Geology" layer.

I do not get any cached images.  I recognize that the problem may be
somewhere else in this process, but here is my mapcache.xml file,
cribbed and modified from an older list message by Stephen Woodbridge:

<?xml version="1.0" encoding="UTF-8"?>
<mapcache>
    <metadata>
      <title>MRData mapcache service</title>
      <abstract>Contains various services for MRData maps</abstract>
    </metadata>

    <cache name="disk" type="disk">
      <base>/mnt/mrt/mapcache</base>
      <symlink_blank/>
    </cache>

    <source name="sgmc" type="wms">
      <getmap>
        <params>
          <FORMAT>image/png</FORMAT>
          <MAP_IMAGETYPE>png</MAP_IMAGETYPE>
          <LAYERS>Lithology,Faults,Dikes</LAYERS>
          <MAP>/mnt/mrt/map-files/sgmc-3857.map</MAP>
        </params>
      </getmap>

      <http>
        <url>http://mrdata.usgs.gov/services/sgmc-3857</url>
      </http>
    </source>

    <format name="PNGQ_FAST" type="PNG">
      <compression>fast</compression>
      <colors>256</colors>
    </format>

    <tileset name="sgmc">
      <source>sgmc</source>
      <cache>disk</cache>
      <grid>WGS84</grid>
      <grid>g</grid>
      <grid>GoogleMapsCompatible</grid>
      <format>PNGQ_FAST</format>
      <metatile>5 5</metatile>
      <expires>864000</expires>
    </tileset>

    <default_format>PNGQ_FAST</default_format>

    <service type="wms" enabled="true">
      <full_wms>assemble</full_wms>
      <resample_mode>bilinear</resample_mode>
      <format>PNGQ_FAST</format>
      <maxsize>4096</maxsize>
    </service>
    <service type="wmts"  enabled="true"/>
    <service type="tms"   enabled="true"/>
    <service type="kml"   enabled="true"/>
    <service type="gmaps" enabled="true"/>
    <service type="ve"    enabled="true"/>
    <service type="demo"  enabled="true"/>

    <errors>report</errors>
    <lock_dir>/tmp</lock_dir>
</mapcache>

I am also not seeing error messages in either the apache log or the
mapserver log.  Here is my apache config:

LoadModule mapcache_module    modules/mod_mapcache.so

<IfModule mapcache_module>
     <Directory /mnt/mrt/mapcache>
        Order Allow,Deny
        Allow from all
     </Directory>
     MapCacheAlias /mapcache "/mnt/mrt/mapcache/mapcache.xml"
</IfModule>

Thanks in advance for any help you might provide.

Peter
--
Peter N. Schweitzer (U.S. Geological Survey, Reston, VA 20192)
(703) 648-6533  email: [email protected]
http://geology.usgs.gov/peter/
_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users





_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to