Yes, you are right. Looks like I remembered it wrong. I also have tried different versions of wms : 1.0.0, 1.1.0 … and all have this root layer. So this was just my misconception. Regarding root layer name both options (setting wms_rootlayer_name to empty string as well as setting name property of map to empty string) , I think, gave the same result. Probably I will ask front end developers to disregard layers with empty name as you suggest. Thanks a lot. Sincerely, Dimitri >Четверг, 16 апреля 2020, 20:10 +03:00 от Rahkonen Jukka (MML) ><[email protected]>: > >Hi, > >Can you point some common WMS server that does not have a root layer? For >example all Geoservers have root layer like this >https://demo.geo-solutions.it/geoserver/ows?service=wms&version=1.3.0&request=GetCapabilities > ><Layer> ><Title>GeoServer Web Map Service</Title> > >This is an ArcGIS server and it seems to have root layer with title but >without a name as well https://hakku.gtk.fi/locations/wmsserver/ . > >OpenLayers can certainly parse GetCapabilities from common WMS servers. The >nested layers are there, I guess, for making it possible to categorize layers >and thus help with building a user friendly presentation of the layers. But if >you parse only the layers with name and skip layers with just title the result >might please you. > >However, it should be possible to make Mapserver to have a root layer with >just title, that is mandatory, but without name. Do you mean that your root >layer has always name even if your MAP has an empty name (NAME "") or if you >have set an empty name for it in MAP-METADATA (wms_rootlayer_name "")? > >-Jukka Rahkonen- > >Lähettäjä: Zmitser Kozhukh < [email protected] > >Lähetetty: torstai 16. huhtikuuta 2020 19.41 >Vastaanottaja: Rahkonen Jukka (MML) < [email protected] > >Kopio: [email protected] >Aihe: Re[2]: [mapserver-users] mapserver creating layers group MS , that is >displayed in GetCapabilities. how to get rid of it? what is the reason for it? > >Thank you Jukka! For me it is surprise to find out that there is a such thing >as a root layer. Do you know if it is possible to disable it? Or is it just >natural way how mapserver parses mapfile into getcapabilities xml? I would >rather prefer to have list of separate layers in getcapabilities. >I have tried to set the name of the root layer to empty string, also the name >of the map I was setting to empty string, also tried to put metadata >ows_enable_request to ‘!*’ but the root layer still appears in >GetCapabilities. In case when I omit wms_title and wms_abstract on the Map >object level, it is still substituted to ‘MS’ automatically by mapserver. >For me personally, this requirement to have root layer partially makes sense, >but the customer , who uses OL to read getcapabilities of wms services, that I >am preparing, is bothered by having root layer there — it is meaningless and >not needed for him. >So I guess I will just preprepare custom getcapabilities xmls and configure >server to serve them instead of using mapserver for this. >Sincerely, Dimitri > >>Четверг, 16 апреля 2020, 18:43 +03:00 от Rahkonen Jukka (MML) < >>[email protected] >: >> >>WMS service does not actually need to have a root layer but usually it >>exists. Each layer must have a title but name in optional. If layer does not >>hava a name it cannot be accessed with GetMap so what you need to do is to >>get rid of the name of your root layer. How to do that is documented in >>https://www.mapserver.org/ogc/wms_server.html : >> >>Map Name and wms_title: >>WMS Capabilities requires a Name and a Title tag for every layer. The Map’s >>NAME and wms_title metadata will be used to set the root layer’s name and >>title in the GetCapabilities XML output. The root layer in the WMS context >>corresponds to the whole mapfile. You can suppress the root layer’s name by >>setting wms_rootlayer_name to "". >> >>There has been some changes in configuring the name of the root layer. >>Earlier it just took the NAME from the MAP level if it was not left empty. Do >>you perhaps have “MS” as a name of your mapfile now? >> >>Discussion about the topic in >>https://github.com/mapserver/mapserver/issues/5404 >> >>And this is from the WMS 1.3.0 standard: >> >>7.2.4.6.2 Title >>A <Title> is mandatory for all layers; it is a human-readable string for >>presentation in a menu. The Title is not >>inherited by child Layers. >>7.2.4.6.3 Name >>If, and only if, a layer has a <Name>, then it is a map layer that can be >>requested by using that Name in the >>LAYERS parameter of a GetMap request. A Layer that contains a <Name> element >>is referred to as a “named >>layer” in this International Standard. If the layer has a Title but no Name, >>then that layer is only a category title for >>all the layers nested within. A server that advertises a Layer containing a >>Name element shall be able to accept >>that Name as the value of LAYERS argument in a GetMap request and return the >>corresponding map. A client >>shall not attempt to request a layer that has a Title but no Name. >>A server shall throw a service exception (code="LayerNotDefined") if an >>invalid layer is requested. >>A containing category itself may include a Name by which a map portraying all >>of the nested layers can be >>requested at once. For example, a parent layer "Roads" may have children >>“Interstates” and “State Highways” >>and allow the user to request either child individually or both together. >>The Name is not inherited by child Layers. >> >> >>-Jukka Rahkonen- >> >> >>Lähettäjä: mapserver-users < [email protected] > >>Puolesta Zmitser Kozhukh >>Lähetetty: torstai 16. huhtikuuta 2020 17.32 >>Vastaanottaja: [email protected] >>Aihe: [mapserver-users] mapserver creating layers group MS , that is >>displayed in GetCapabilities. how to get rid of it? what is the reason for it? >> >>Good day, >>I haven’t been using mapserver for a while, but I guess, that since last time >>I have used it, something has changed. >>Now when I am querying GetCapabilities of WMS service, created by Mapserver >>(version 7.2.0 running on a linux server), it puts everying in ‘MS’ layer >>group. But I don’t have any MS group defined in mapfile. Could anyone explain >>how to get rid of this MS group in GetCapabilities xml? This is how it looks >>in xml: >><Layer queryable="1"> >><Name>MS</Name> >><Title>MS</Title> >><Abstract>MS</Abstract> >><CRS>EPSG:4326</CRS> >>…. >>after normal layers follow: >> <Layer queryable="1" opaque="0" cascaded="0"> >> ….. >> </Layer> >> ….. >></Layer> >>So for me it looks that for no reason the group MS is created which is sort >>of container for all normal layers. >>But how to get rid of this MS group? >>Sincerely, >> >> >>-- >>Zmitser Kozhukh > > >-- >Zmitser Kozhukh > -- Zmitser Kozhukh
_______________________________________________ mapserver-users mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/mapserver-users
