MapServer OpenLayers Viewer

MapServer (since the 6.0 release) provides a simple, built-in method for testing a mapfile using OpenLayers. This feature is for testing/development purposes only, and not for production or deploying full-featured sites. You can preview, test, and navigate a mapfile by accessing a special url which will return a built-in OpenLayers template.

Note

This feature was discussed in rfc 63 and in the ticket https://github.com/MapServer/MapServer/issues/3549

Using the OpenLayers viewer

Opening the OpenLayers viewer in your browser

Assuming you are running mapserver on your local machine, and you have the Itasca demo setup, a basic url would be (split into two lines for readability):

http://localhost/cgi-bin/mapserv?mode=browse&template=openlayers
     &layer=lakespy2&layer=dlgstln2&map=/var/www/workshop/itasca.map

Here is a quick breakdown of that url:

  • Basic Parameters for activating the OpenLayers browser:

    template=openlayers
    mode=browse
    
  • Basic Map / Layer Parameters:

    map=/var/www/workshop/itasca.map
    layer=lakespy2
    layer=dlgstln2
    

That’s it!

Opening the OpenLayers viewer in the form of a WMS request

This feature is useful when debugging WMS requests. You can write one of these by hand, or copy the URL for a WMS tile. Running the following should give you a simple OpenLayers demo around the BBOX (split into several lines for readability):

http://localhost/cgi-bin/mapserv?map=/var/www/workshop/itasca.map
     &LAYERS=lakespy2&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap
     &FORMAT=application/openlayers&WIDTH=512&HEIGHT=512&SRS=EPSG:26915
     &BBOX=429956.19803725,5231780.0814818,444078.32296225,5245902.2064068

Here is a quick breakdown of the interesting parts of that URL:

  • Special Parameter for activating the OpenLayers viewer:

    FORMAT=application/openlayers
    
  • Basic MapServer Parameters:

    map=/var/www/workshop/itasca.map
    
  • Basic WMS parameters:

    #Layers, our bounding box and projection
    LAYERS=lakespy2
    BBOX=429956.19803725,5231780.0814818,444078.32296225,5245902.2064068
    SRS=EPSG:26915
    
    #Version and other WMS request params
    SERVICE=WMS
    VERSION=1.1.1
    REQUEST=GetMap
    WIDTH=512
    HEIGHT=512
    TRANSPARENT=true
    

Customizing settings

  • environment variables:

    MS_OPENLAYERS_JS_URL - The URL to the OpenLayers javascript library. Per default the library loaded from the MapServer web server.
    

Location of the embedded OpenLayers.js file

If you aren’t providing your own OpenLayers library through MS_OPENLAYERS_JS_URL, MapServer will point to a hardcoded filepath of www.mapserver.org/lib to find the OpenLayers library, referred to in [maptemplate.c](https://github.com/MapServer/MapServer/blob/main/src/maptemplate.c#L54).

The contents on that lib folder is stored in the MapServer documentation repository, in the [/extra](https://github.com/MapServer/MapServer-documentation/tree/main/extra) folder. You are warmly encouraged to contribute to upgrading the OpenLayers library, at any time (maybe start with creating a new [Pull Request](https://github.com/MapServer/MapServer-documentation/pulls) there.