1

One of my WMS layer is not loading the image tiles. See the code:

    <script type="text/javascript">
    var map, ia_wms;
    function init(){
        map = new OpenLayers.Map('map', {zoomDuration: 1,projection: 'EPSG:3857'});
    var esr_all = new OpenLayers.Layer.WMS("ESR_Boundary","http://localhost/cgi-bin/mapserv?map=/var/www/mstest/plant_sr.map",{'layers':"ESR_outline",'transparent':true,'format':'image/png'}
           ,{
            isBaseLayer: false,opacity: 100
            }
            );
    var mslayer = new OpenLayers.Layer.WMS( "MapServer Layer",
                                          "http://localhost/cgi-bin/mapserv?map=/var/www/osm-demo/mapserver-utils-svn/osm-google_test.map&",
                                          {'layers': "land0 borders0 places0 land1 borders1 places1 land2 borders2 places2 land3 borders3 places3 land4 landuse4 transport_areas4 waterarea4 borders4 places4 land5 landuse5 transport_areas5 waterarea5 roads5 borders5 places5 land6 landuse6 transport_areas6 waterarea6 waterways6 roads6 borders6 places6 land7 landuse7 transport_areas7 waterarea7 waterways7 roads7 borders7 places7 land8 landuse8 transport_areas8 waterarea8 waterways8 railways8 roads8 borders8 places8 land9 landuse9 transport_areas9 waterarea9 waterways9 railways9 roads9 borders9 places9 land10 landuse10 transport_areas10 waterarea10 waterways10 railways10 roads10 aeroways10 borders10 places10 land11 landuse11 transport_areas11 waterarea11 waterways11 railways11 roads11 aeroways11 borders11 places11 land12 landuse12 transport_areas12 waterarea12 waterways12 railways12 roads12 aeroways12 borders12 places12 land13 landuse13 transport_areas13 waterarea13 waterways13 railways13 roads13 aeroways13 borders13 places13 land14 landuse14 transport_areas14 waterarea14 waterways14 railways14 roads14 aeroways14 borders14 places14 land15 landuse15 transport_areas15 waterarea15 waterways15 railways15 roads15 aeroways15 borders15 places15 land16 landuse16 transport_areas16 waterarea16 waterways16 railways16 roads16 aeroways16 borders16 places16 land17 landuse17 transport_areas17 waterarea17 waterways17 railways17 roads17 aeroways17 borders17 places17 land18 landuse18 transport_areas18 waterarea18 waterways18 railways18 roads18 aeroways18 borders18 places18"}
                                           );    
    map.addLayers([esr_all, mslayer]);
    map.addControl(new OpenLayers.Control.LayerSwitcher());
    map.zoomToExtent(new OpenLayers.Bounds(69.00,21.00,70.00,22.00));
    map.setCenter(new OpenLayers.LonLat(69.57,21.55).transform(
    new OpenLayers.Projection('EPSG:4326', 'EPSG:3857'),
    map.getProjectionObject()
    ), 14);
    }
</script>

See the image:

esr_all layer is showing

I get an error:

msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given in the LAYERS parameter. A layer might be disabled for this request. Check wms/ows_enable_request settings.

Instead if change it as a mapserver layer,

    var mslayer = new OpenLayers.Layer.MapServer ( "MapServer Layer",
                                          "http://localhost/cgi-bin/mapserv?map=/var/www/osm-demo/mapserver-utils-svn/osm-google_test.map&",
                                          {'layers': "land0 borders0 places0 land1 borders1 places1 land2 borders2 places2 land3 borders3 places3 land4 landuse4 transport_areas4 waterarea4 borders4 places4 land5 landuse5 transport_areas5 waterarea5 roads5 borders5 places5 land6 landuse6 transport_areas6 waterarea6 waterways6 roads6 borders6 places6 land7 landuse7 transport_areas7 waterarea7 waterways7 roads7 borders7 places7 land8 landuse8 transport_areas8 waterarea8 waterways8 railways8 roads8 borders8 places8 land9 landuse9 transport_areas9 waterarea9 waterways9 railways9 roads9 borders9 places9 land10 landuse10 transport_areas10 waterarea10 waterways10 railways10 roads10 aeroways10 borders10 places10 land11 landuse11 transport_areas11 waterarea11 waterways11 railways11 roads11 aeroways11 borders11 places11 land12 landuse12 transport_areas12 waterarea12 waterways12 railways12 roads12 aeroways12 borders12 places12 land13 landuse13 transport_areas13 waterarea13 waterways13 railways13 roads13 aeroways13 borders13 places13 land14 landuse14 transport_areas14 waterarea14 waterways14 railways14 roads14 aeroways14 borders14 places14 land15 landuse15 transport_areas15 waterarea15 waterways15 railways15 roads15 aeroways15 borders15 places15 land16 landuse16 transport_areas16 waterarea16 waterways16 railways16 roads16 aeroways16 borders16 places16 land17 landuse17 transport_areas17 waterarea17 waterways17 railways17 roads17 aeroways17 borders17 places17 land18 landuse18 transport_areas18 waterarea18 waterways18 railways18 roads18 aeroways18 borders18 places18"}
                                           );

it works and I get tiles for both the layers. Why is it not when both are WMS layers?

In my osm-google_test.map file the WEB portion is like this:

WEB
#IMAGEPATH "/tmp/ms_tmp/"
#IMAGEURL "/ms_tmp/"
    IMAGEPATH '/opt/fgs/tmp/ms_tmp/' 
    IMAGEURL  '/ms_tmp/'
TEMPLATE  '/var/www/mstest/templatesample.html'
#labelcache_map_edge_buffer "10"
    METADATA
        "wms_enable_request"    "*"
        #"ows_enable_request" "*"
        "wms_srs" "EPSG:900913 EPSG:4326 EPSG:3857 EPSG:2154 EPSG:310642901 EPSG:4171 EPSG:310024802 EPSG:310915814 EPSG:310486805 EPSG:310702807 EPSG:310700806 EPSG:310547809 EPSG:310706808 EPSG:310642810 EPSG:310642801 EPSG:310642812 EPSG:310032811 EPSG:310642813 EPSG:2986"
            "labelcache_map_edge_buffer" "-10"
            "wms_title" "osm france"
    END
END
  • 2
    try putting , between your layer names – Ian Turton Feb 19 '14 at 9:27
  • @iant Done. :) Put "," between layer names "without space", and it worked. Can you please put it as an answer. Thanks a lot. One more thing, no tiles are saved in IMAGEPATH '/opt/fgs/tmp/ms_tmp/' Doesn't these tiles get saved? – mapsir Feb 19 '14 at 10:28
2

Your layer names specification is wrong, try it this way:

var mslayer = new OpenLayers.Layer.MapServer ( 
    "MapServer Layer",
    "http://localhost/cgi-bin/mapserv?map=/var/www/osm-demo/mapserver-utils-svn/osm-google_test.map&",
    {'layers': ["land0","borders0","places0","land1"]}
);

Basically it is an array of strings, not a single string. In your particular example just add there all other of your layers names.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.