Skip to content

Commit

Permalink
Merge pull request #84 from geoadmin/feat-PB-510-fix-metadata-epsg-lang
Browse files Browse the repository at this point in the history
PB-510: Fixing OperationsMetadataURL and ServiceMetadataURL
  • Loading branch information
rebert authored May 31, 2024
2 parents a096bda + d87989a commit da91ede
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 7 deletions.
12 changes: 8 additions & 4 deletions app/templates/WmtsCapabilities.xml.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@
xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd"
version="1.0.0">
{% include 'StandardHeader.xml.jinja' +%}

{% set key_value_lang = '' if is_default_lang == "True" else '?lang=%s' % language %}
{% set url_path_epsg = '' if is_default_epsg == "True" else 'EPSG/%s/' % epsg %}

<ows:OperationsMetadata>
<ows:Operation name="GetCapabilities">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="{{ url_base }}1.0.0/WMTSCapabilities.xml">
<ows:Get xlink:href="{{ url_base }}{{ url_path_epsg }}1.0.0/WMTSCapabilities.xml{{ key_value_lang }}">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>REST</ows:Value>
Expand All @@ -24,7 +28,7 @@
<ows:Operation name="GetTile">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="{{ url_base }}">
<ows:Get xlink:href="{{ url_base }}{{ url_path_epsg }}">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>REST</ows:Value>
Expand All @@ -40,5 +44,5 @@
{% include 'TileMatrixSet.xml.jinja' +%}
</Contents>
{% include 'Themes.xml.jinja' +%}
<ServiceMetadataURL xlink:href="{{ url_base }}1.0.0/WMTSCapabilities.xml"/>
</Capabilities>
<ServiceMetadataURL xlink:href="{{ url_base }}{{ url_path_epsg }}1.0.0/WMTSCapabilities.xml{{ key_value_lang }}"/>
</Capabilities>
13 changes: 10 additions & 3 deletions app/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,14 @@ class GetCapabilities(View):
# pylint: disable=arguments-differ
def dispatch_request(self, version, epsg=None, lang=None):
validate_version()
is_default_epsg = (epsg is None)
is_default_lang = (lang is None)

epsg, lang = self.get_and_validate_args(epsg, lang)

context = self.get_context(self.get_models(lang), epsg, lang)
context = self.get_context(
self.get_models(lang), epsg, lang, is_default_lang, is_default_epsg
)
return (
render_template(
'WmtsCapabilities.xml.jinja',
Expand Down Expand Up @@ -87,7 +92,7 @@ def get_metadata(cls, model):
).first()

@classmethod
def get_context(cls, models, epsg, lang):
def get_context(cls, models, epsg, lang, is_default_lang, is_default_epsg):
start = time.time()
layers_capabilities = cls.get_layers_capabilities(models['GetCap'])
logger.debug('GetCap query done in %fs', time.time() - start)
Expand All @@ -111,7 +116,9 @@ def get_context(cls, models, epsg, lang):
'default_tile_matrix_set': get_default_tile_matrix_set(epsg),
'legend_base_url': app.config["LEGENDS_BASE_URL"],
'language': lang,
'standard_latitude': STANDARD_LATITUDE_FOR_SWITZERLAND
'standard_latitude': STANDARD_LATITUDE_FOR_SWITZERLAND,
'is_default_lang': is_default_lang,
'is_default_epsg': is_default_epsg
}
logger.debug('Data context created in %fs', time.time() - start)
return context

0 comments on commit da91ede

Please sign in to comment.