Marble: WMS map: Does not honour manual `version=` parameter in query, still adds `version=1.1.1` anyway, leading to HTTP error 400 "Duplicate parameters are not supported" | Where to find good documentation for manually creating WMS and WMTS custom maps?

Ahoj,

I am using Marble 25.12.2.

I do ant want to create custom maps, using WMTS or WMS servers.

I miss an exhaustive documentation on how to do that; there is only very rudimentally documentation at techbase.kde.org/Marble/CustomMaps and techbase.kde.org/Marble/OSMSlippyMaps, not really targeting WMS and WMTS.

Now I specifically refer to “WMS” maps:

I often cannot use GetCapabilities, e.g. there is a server when I do a “GetCapabilities” request, marble shows me a dialogue window saying “Server is not an OWS server”. Manually adding the map (by fiddling a lot around with the explicit URL I found somewhere else) works.

This is the GetCapabilities URL that prodices the “Server is not an OWS server” response (there are credentials in the URL which I have censored, you have to retrieve them manually from josm.openstreetmap.de/wiki/Maps/Denmark#KDSScreenmap to make the URL work in the web browser).

And this GetCapabilities URL results in a “Wizard cannot parse server’s response” (again, credentials censored; need to be retrieved from josm.openstreetmap.de/wiki/Maps/Denmark#KDSDTKMap25).

But I also see those issues with WMS servers that do not need credentials at all.

So manual adding the map is needed, I succeeded, after lot of frickling.

A documentation on how Marble’s .dgml files work exactly would really be helpful and needed.
Is it somewhere, if not, should I open a “documentation feature wish” issue on the bugtracker (and maybe referring here to give context about the hassles experienced)?


I have the case where the URL I was given involves a version=1.3.0 in the query. But when I set version=1.3.0 in the <query /> tag in the .dgml file, marble still also adds a version=1.1.1 to the request, resulting in two version parameters. I encountered a WMS server that did not accept specifying this twice with different values. (Gladly it also worked with version=1.1.1).
How can I make marble not adding a version parameter to the query if it is already given? Other parameters which I manually specify are also omitted from the otherwise automatically added parameters.

It is the following map layer which shows the issue:

<texture name="map" expire="31536000">
  <sourcedir format="png" expire="31536000">earth/denmark-roadmap</sourcedir>
  <tileSize width="256" height="256"/>
  <storageLayout maximumTileLevel="19" levelZeroColumns="1" levelZeroRows="1" mode="WebMapService"/>
  <downloadUrl protocol="https" host="services.datafordeler.dk" path="/DKskaermkort/topo_skaermkort/1.0.0/Wms" query="username=CENSORED&amp;password=CENSORED&amp;transparent=TRUE&amp;version=1.3.0&amp;layers=dtk_skaermkort&amp;styles="/>
  <projection name="Mercator"/>
  <blending/>
</texture>

resulting in e.g. the following server query:
https://services.datafordeler.dk/DKskaermkort/topo_skaermkort/1.0.0/Wms?username=CENSORED&password=CENSORED&transparent=TRUE&version=1.3.0&layers=dtk_skaermkort&styles=&service=WMS&request=GetMap&version=1.1.1&format=image/png&srs=EPSG:3857&width=256&height=256&bbox=1159396.844868164277,7594783.129357904196,1161842.829772948287,7597229.114262696356
(See the two version parameters!),
Resulting in an HTTP error 400 “Bad Request” and in the web browser giving the text:

Duplicate parameters are not supported: version

Removing the version=1.3.0 makes it succeeding.

(Note, once again, to reproduce you first need to retrieve from josm.openstreetmap.de/wiki/Maps/Denmark#KDSScreenmap the credentials which I have censored.)


Please also tell me if parts of this are a bug report, and if so, feel free to report it or tell me weather I should report it.

Regards!

@rahn, maybe?