Improved WMS support / experimental WMTS support in Marble
Torsten Rahn
tackat at t-online.de
Sun Mar 26 20:25:54 BST 2023
Hello Everyone,
I have recently worked on improving the existent WMS feature inside Marble.
If you are interested in this functionality you might want to come up with
your favorite WMS services (e.g. using<https://www.geoseer.net/> ) and give
it a try. I'd be curious about any feedback.
Recent additions inside the WMS wizard include (among numerous others):
- More reliable queries
- Refactored the whole backend code (now moved into the new class
OwsServiceManager) out of the UI-code (MapWizard class)
- Tabbed view that provides all infos for each layer before making the
selection
- Multi-selection for layers (the order of selection is relevant: the first
selection is considered the "primary" layer that most info is derived from
and the rendering of the WMS service will happen in the selection order).
- A preview image that takes the boundaries into account for displaying the
(map theme) preview.
- Selection between the available standard bitmap file formats supported by
Marble (maybe someone could look into SVG support as well)
- Choice between the EPSGs (reference systems/projections) relevant for
Marble. Most prominently this includes 4326 (closely related to
"Equirectangular") and 3857 ("Web Mercator").
- You can enable the OpenStreetMap texture layer as a backdrop if the
imagery of the WMS service only covers parts of the earth (which messes
with the transparency feature). Or alternatively you can provide a color
value that is used in all transparent parts of the WMS layer.
- For WMS services with lots of layers (e.g.
https://geowebservices.stanford.edu/geoserver/ows?SERVICE=WMS&
<https://geowebservices.stanford.edu/geoserver/ows?SERVICE=WMS&> or
https://www.umweltkarten-niedersachsen.de/arcgis/services/GSG_wms/MapServer/WMSServer?
<https://www.umweltkarten-niedersachsen.de/arcgis/services/GSG_wms/MapServer/WMSServer>
) I introduced a lineedit that allows for wildcard searches)
- Cleaned up the legend and re-added legend image support for the first
selected layer.
TODOs:
- Include means of Authentication (username and password / API token where
necessary) -> highest priority
- Further bugfixes -> high priority
- If multiple layers have been selected compile the resulting legend image
from all of these. -> high priority
- Allow to include further map layers as a "backdrop" that were previously
created with the MapWizard (requirement: compatible tile projections). This
would allow for creating map themes with several layers using the Marble
UI. -> medium priority
- Selection of Marble's existing blending algorithms for the backdrop
layer(s). -> medium priority
- Add support for further EPSGs that can be included in a meaningful way
-> medium priority
This might include UTM-related EPSGs (however unfortunately our UTM
projection calculations are broken at the moment, see:
<https://bugs.kde.org/show_bug.cgi?id=347536> )
- SLD support -> no priority atm
- ...
Also I have added initial experimental support for WMTS (the tile-based
flavor of WMS):
Lots of known restrictions:
- This only works well if the TileMatrixSet is layouted in the same way as
OpenStreetMaps Slippy Map (One Level Zero tile and a 2^x growth for Column
and Row per level). And the TileMatrix identifiers need to be named exactly
according to the "zoomlevel"/tile level (without e.g. EPSG snippets).
- Also the level zero needs to include the whole latitude/longitude range
("whole earth"). Some WMTS services just provide a portion of the Earth for
the level zero tile which currently is not compatible with Marble's tile
approach. I don't have any plans to "fix" this, but if you feel tempted go
ahead.
- No GetTile requests - right now we just support the faster ResourceURL
approach.
- most rudimentary support for {Time} (which automatically gets translated
to the arbitrary default "current").
- due to the insane potential complexity supported by WMTS there are
probably numerous cornercases that don't work. Initially it would be great
to support "conservative" WMTS services that just imitate XYZ-server
behavior.
- no support for backdrops yet (it's on my TODO though as it should be easy
to add).
If you are curious about WMTS services to work, you might want to try e.g.
<http://spectrum.mapinfoservices.com/rest/Spatial/WMTS> (yes this is a
pretty "harmless" layer).
At the moment there are no plans to support related WFS/WCS calls but if
you feel tempted to add them go ahead.
I'd be curious to get feedback about any use cases / URLs that are of
interest (and are buggy or work noteworthy well). And if you feel tempted
to contribute via patches, don't hesitate ...
Have fun!
Torsten
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/marble-devel/attachments/20230326/6d66cb97/attachment-0001.htm>
More information about the Marble-devel
mailing list