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