Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 86 additions & 3 deletions apps/gui/descriptions/global_gui.xml
Original file line number Diff line number Diff line change
Expand Up @@ -91,11 +91,94 @@
</parameter>
<parameter name="type" type="string">
<description>
The tile store implementation provided by a plugin for
considering maps if a non-default tile store is configured
in 'map.location'.
The tile store implementation for considering maps if a
non-default tile store is configured in 'map.location'.

The built-in 'xyz' store fetches tiles from any standard
XYZ / slippy-map server (OpenStreetMap, OpenTopoMap, ESRI,
CartoDB, custom servers); see the 'xyz' group below.
Additional stores may be provided by plugins.
</description>
</parameter>
<group name="xyz">
<description>
Configuration of the built-in XYZ tile store
(map.type = xyz). The tile URL template in 'map.location'
uses the tokens {z} (zoom), {x} (column), {y} (row) and
{s} (subdomain), e.g.
https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png.
Note: some servers (e.g. ESRI) expect {z}/{y}/{x} order.
</description>
<parameter name="sources" type="list:string">
<description>
Optional list of tile sources, each serving a contiguous
zoom-level band, to show different basemaps at different
zoom levels. Each entry has the form
"minLevel:maxLevel:urlTemplate"; only the first two
colons are separators, so the "https://" in the URL is
preserved. When set, this overrides 'map.location'. When
empty, 'map.location' is used with minLevel/maxLevel.
</description>
</parameter>
<parameter name="minLevel" type="uint" default="0" range="0:29">
<description>
Minimum zoom level requested from the single-source
'map.location'. Ignored when 'map.xyz.sources' is set.
</description>
</parameter>
<parameter name="maxLevel" type="uint" default="19" range="0:29">
<description>
Maximum zoom level requested from the single-source
'map.location'. Ignored when 'map.xyz.sources' is set.
Provider maxima differ (OSM 19, Google ~21-22, ESRI 23);
the hard ceiling is 29.
</description>
</parameter>
<parameter name="subdomains" type="string" default="a,b,c">
<description>
Comma-separated subdomains substituted for {s} in the URL
template, rotated for basic load-balancing. Leave empty
if the server has no subdomain variants.
</description>
</parameter>
<parameter name="tileSize" type="string" default="256" unit="px"
values="256,512">
<description>
Edge length of square tiles in pixels. Must match what
the server actually serves; a mismatch renders blurry.
256 = standard tiles, 512 = HiDPI/retina tiles.
</description>
</parameter>
<parameter name="cacheDir" type="directory">
<description>
Directory for caching downloaded tiles
(cacheDir/{z}/{x}/{y}). Leave empty to disable disk
caching.
</description>
</parameter>
<parameter name="cacheDuration" type="int" default="86400" unit="s">
<description>
How long a cached tile is considered fresh before it is
fetched again. -1 = never expire, 0 = disable caching.
</description>
</parameter>
<parameter name="missingTTL" type="int" default="300" unit="s">
<description>
How long to remember that a tile returned an HTTP error
(e.g. 404 above a server's max zoom) before retrying it,
to avoid re-requesting absent tiles on every redraw.
-1 = remember for the whole session, 0 = always retry.
</description>
</parameter>
<parameter name="userAgent" type="string"
default="SeisComP-xyztiles/1.0">
<description>
HTTP User-Agent header sent with every tile request. Set
this to identify your institution when deploying
publicly; required by OSM's tile usage policy.
</description>
</parameter>
</group>
<parameter name="customLayers" type="list:string">
<description>
Allows to add custom layers that are included via plugins.
Expand Down
10 changes: 6 additions & 4 deletions libs/seiscomp/gui/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,17 @@ SET(GUI_UI_HEADERS "")
SC_LIB_INSTALL_HEADERS(GUI)

IF (SC_GLOBAL_GUI_QT5)
FIND_PACKAGE(Qt5 COMPONENTS Svg Xml)
FIND_PACKAGE(Qt5 COMPONENTS Svg Xml Network)
INCLUDE_DIRECTORIES(${Qt5Svg_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${Qt5Xml_INCLUDE_DIRS})
SC_LIB_LINK_LIBRARIES(qt Qt5::Svg Qt5::Xml ${OPENSSL_LIBRARIES})
INCLUDE_DIRECTORIES(${Qt5Network_INCLUDE_DIRS})
SC_LIB_LINK_LIBRARIES(qt Qt5::Svg Qt5::Xml Qt5::Network ${OPENSSL_LIBRARIES})
ELSEIF (SC_GLOBAL_GUI_QT6)
FIND_PACKAGE(Qt6 REQUIRED COMPONENTS Svg Xml)
FIND_PACKAGE(Qt6 REQUIRED COMPONENTS Svg Xml Network)
INCLUDE_DIRECTORIES(${Qt6Svg_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${Qt6Xml_INCLUDE_DIRS})
SC_LIB_LINK_LIBRARIES(qt Qt6::Svg Qt6::Xml ${OPENSSL_LIBRARIES})
INCLUDE_DIRECTORIES(${Qt6Network_INCLUDE_DIRS})
SC_LIB_LINK_LIBRARIES(qt Qt6::Svg Qt6::Xml Qt6::Network ${OPENSSL_LIBRARIES})
ENDIF()

SC_LIB_VERSION(qt ${SC_COMMON_VERSION} ${SC_COMMON_VERSION_MAJOR})
Expand Down
1 change: 1 addition & 0 deletions libs/seiscomp/gui/map/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,5 @@ SET(GUI_MAP_MOC_HEADERS

SC_ADD_GUI_SUBDIR_SOURCES(GUI_MAP projections)
SC_ADD_GUI_SUBDIR_SOURCES(GUI_MAP layers)
SC_ADD_GUI_SUBDIR_SOURCES(GUI_MAP tilestores)
SC_SETUP_GUI_LIB_SUBDIR(GUI_MAP)
5 changes: 5 additions & 0 deletions libs/seiscomp/gui/map/tilestores/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
SET(GUI_MAP_TILESTORES_SOURCES
xyz.cpp
)

SC_SETUP_GUI_LIB_SUBDIR(GUI_MAP_TILESTORES)
Loading