wiki:CodeSamples/Tiles/ServingTilesViaHttp

This page is one of the MapGuide Community CodeSamples. Visit the CodeSamples page to view more!

Serving Mapguide Tiles directly

For scalability, it can be useful to get your web server to serve your map tiles directly.

This allows the map tiles to be proxied and cached, freeing up the Mapguide Server process, which during high load may have a request queue.

Openlayers has native support for this via the useHttpTile layer option

Apache

The implementation involves exposing a single map's tile cache directory via apache httpd.conf. This sample configuration also flags the tiles to expire after one day.

<Directory "C:/Program Files/MapGuideOpenSource2.0/Server/Repositories/TileCache/Samples_Sheboygan_MapsTiled_Sheboygan/">
    Options Indexes
    ErrorDocument 404 /mapguide/seedSheboyganTile.php
    Header set Cache-Control "max-age=86400, public"
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Alias /sheboyganTiles/ "C:/Program Files/MapGuideOpenSource2.0/Server/Repositories/TileCache/Samples_Sheboygan_MapsTiled_Sheboygan/"

Restart Apache

The attached file contains seedSheboyganTile.php which is used to generate tiles which haven't been seeded yet,
save it in "C:\Program Files\MapGuideOpenSource2.0\WebServerExtensions?\www"

There is also a modified version of openlayers Mapguide.js which has a new option called "useHttpTile" which
when set to true will generate requests for the tiles as they are stored internally by the TileService?,
the layer url then becomes http://localhost:8008/sheboyganTiles/

The httpCacheDemo.html file assumes you have openlayers installed under "C:\Program Files\MapGuideOpenSource2.0\WebServerExtensions?\www\openlayers"

Simply add the updated Mapguide.js to the openlayers\lib\OpenLayers\Layer directory and then open the httpCacheDemo.html file to try it out.

update openlayers support is now included in trunk, you should ignore the included mapguide.js file.

IIS

The attached file contains getTile.php which is an IIS version of the Apache seedSheboyganTile.php file mentioned above.

Set up IIS as follows:

  1. In IIS select the virtual folder containing the tile cache, right-click and select Properties.
  2. In the Properties dialog, select the Custom Errors tab.
  3. Choose 404 from the list and click Edit.
  4. In the Edit Custom Error Properties dialog choose URL for Message Type and enter a relative path to this PHP file, e.g. "/mapguide/blah/getTile.php".
  5. Save this file in the relevant location, e.g. "C:\Program Files\MapGuideOpenSource2.0\WebServerExtensions?\www\blah\getTile.php".

Note:

  1. This script does not handle extra parameters, i.e. the "querystring" parameter added under http://trac.openlayers.org/ticket/1622.
  2. You must hard-code the tile map repository definition and access credentials inside this file.
Last modified 8 years ago Last modified on Apr 20, 2010 2:25:41 AM

Attachments (3)

Download all attachments as: .zip