diff --git a/locale/bs/LC_MESSAGES/messages.po b/locale/bs/LC_MESSAGES/messages.po
index 40c6573..b140d4b 100644
--- a/locale/bs/LC_MESSAGES/messages.po
+++ b/locale/bs/LC_MESSAGES/messages.po
@@ -656,3 +656,27 @@ msgstr ""
msgid "not specified"
msgstr ""
+
+msgid "Position"
+msgstr ""
+
+msgid "Cube"
+msgstr ""
+
+msgid "Area"
+msgstr ""
+
+msgid "Corridor"
+msgstr ""
+
+msgid "Trajectory"
+msgstr ""
+
+msgid "Radius"
+msgstr ""
+
+msgid "Locations"
+msgstr ""
+
+msgid "Instances"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/messages.po b/locale/de/LC_MESSAGES/messages.po
index e7d1229..770816f 100644
--- a/locale/de/LC_MESSAGES/messages.po
+++ b/locale/de/LC_MESSAGES/messages.po
@@ -706,3 +706,27 @@ msgstr ""
msgid "not specified"
msgstr ""
+
+msgid "Position"
+msgstr ""
+
+msgid "Cube"
+msgstr ""
+
+msgid "Area"
+msgstr ""
+
+msgid "Corridor"
+msgstr ""
+
+msgid "Trajectory"
+msgstr ""
+
+msgid "Radius"
+msgstr ""
+
+msgid "Locations"
+msgstr ""
+
+msgid "Instances"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/messages.po b/locale/en/LC_MESSAGES/messages.po
index 4f2e08a..d9ff712 100644
--- a/locale/en/LC_MESSAGES/messages.po
+++ b/locale/en/LC_MESSAGES/messages.po
@@ -708,3 +708,27 @@ msgstr ""
msgid "not specified"
msgstr ""
+
+msgid "Position"
+msgstr ""
+
+msgid "Cube"
+msgstr ""
+
+msgid "Area"
+msgstr ""
+
+msgid "Corridor"
+msgstr ""
+
+msgid "Trajectory"
+msgstr ""
+
+msgid "Radius"
+msgstr ""
+
+msgid "Locations"
+msgstr ""
+
+msgid "Instances"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/messages.po b/locale/es/LC_MESSAGES/messages.po
index 9cd90fc..7c31304 100644
--- a/locale/es/LC_MESSAGES/messages.po
+++ b/locale/es/LC_MESSAGES/messages.po
@@ -521,3 +521,27 @@ msgstr ""
msgid "not specified"
msgstr ""
+
+msgid "Position"
+msgstr ""
+
+msgid "Cube"
+msgstr ""
+
+msgid "Area"
+msgstr ""
+
+msgid "Corridor"
+msgstr ""
+
+msgid "Trajectory"
+msgstr ""
+
+msgid "Radius"
+msgstr ""
+
+msgid "Locations"
+msgstr ""
+
+msgid "Instances"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/messages.po b/locale/fr/LC_MESSAGES/messages.po
index 72ab277..ea63df8 100644
--- a/locale/fr/LC_MESSAGES/messages.po
+++ b/locale/fr/LC_MESSAGES/messages.po
@@ -715,3 +715,27 @@ msgstr ""
msgid "not specified"
msgstr ""
+
+msgid "Position"
+msgstr ""
+
+msgid "Cube"
+msgstr ""
+
+msgid "Area"
+msgstr ""
+
+msgid "Corridor"
+msgstr ""
+
+msgid "Trajectory"
+msgstr ""
+
+msgid "Radius"
+msgstr ""
+
+msgid "Locations"
+msgstr ""
+
+msgid "Instances"
+msgstr ""
diff --git a/locale/sr/LC_MESSAGES/messages.po b/locale/sr/LC_MESSAGES/messages.po
index 9a04359..71d7210 100644
--- a/locale/sr/LC_MESSAGES/messages.po
+++ b/locale/sr/LC_MESSAGES/messages.po
@@ -656,3 +656,27 @@ msgstr ""
msgid "not specified"
msgstr ""
+
+msgid "Position"
+msgstr ""
+
+msgid "Cube"
+msgstr ""
+
+msgid "Area"
+msgstr ""
+
+msgid "Corridor"
+msgstr ""
+
+msgid "Trajectory"
+msgstr ""
+
+msgid "Radius"
+msgstr ""
+
+msgid "Locations"
+msgstr ""
+
+msgid "Instances"
+msgstr ""
diff --git a/pygeoapi/api/__init__.py b/pygeoapi/api/__init__.py
index 297a22d..a51b862 100644
--- a/pygeoapi/api/__init__.py
+++ b/pygeoapi/api/__init__.py
@@ -80,6 +80,7 @@ HEADERS = {
CHARSET = ['utf-8']
F_JSON = 'json'
+F_COVERAGEJSON = 'json'
F_HTML = 'html'
F_JSONLD = 'jsonld'
F_GZIP = 'gzip'
diff --git a/pygeoapi/api/environmental_data_retrieval.py b/pygeoapi/api/environmental_data_retrieval.py
index 7e7ba12..a72b976 100644
--- a/pygeoapi/api/environmental_data_retrieval.py
+++ b/pygeoapi/api/environmental_data_retrieval.py
@@ -41,10 +41,12 @@
from http import HTTPStatus
import logging
from typing import Tuple
+import urllib
from shapely.errors import ShapelyError
from shapely.wkt import loads as shapely_loads
+from pygeoapi import l10n
from pygeoapi.plugin import load_plugin, PLUGINS
from pygeoapi.provider.base import ProviderGenericError
from pygeoapi.util import (
@@ -52,7 +54,8 @@ from pygeoapi.util import (
to_json, filter_dict_by_key_value
)
-from . import APIRequest, API, F_HTML, validate_datetime, validate_bbox
+from . import (APIRequest, API, F_COVERAGEJSON, F_HTML, F_JSONLD,
+ validate_datetime, validate_bbox)
LOGGER = logging.getLogger(__name__)
@@ -195,6 +198,36 @@ def get_collection_edr_query(api: API, request: APIRequest,
err.ogc_exception_code, err.message)
if request.format == F_HTML: # render
+ uri = f'{api.get_collections_url()}/{dataset}/{query_type}'
+ serialized_query_params = ''
+ for k, v in request.params.items():
+ if k != 'f':
+ serialized_query_params += '&'
+ serialized_query_params += urllib.parse.quote(k, safe='')
+ serialized_query_params += '='
+ serialized_query_params += urllib.parse.quote(str(v), safe=',')
+
+ data['query_type'] = query_type.capitalize()
+ data['query_path'] = uri
+ data['dataset_path'] = '/'.join(uri.split('/')[:-1])
+ data['collections_path'] = api.get_collections_url()
+
+ data['links'] = [{
+ 'rel': 'collection',
+ 'title': collections[dataset]['title'],
+ 'href': data['dataset_path']
+ }, {
+ 'type': 'application/prs.coverage+json',
+ 'rel': request.get_linkrel(F_COVERAGEJSON),
+ 'title': l10n.translate('This document as CoverageJSON', request.locale), # noqa
+ 'href': f'{uri}?f={F_COVERAGEJSON}{serialized_query_params}'
+ }, {
+ 'type': 'application/ld+json',
+ 'rel': 'alternate',
+ 'title': l10n.translate('This document as JSON-LD', request.locale), # noqa
+ 'href': f'{uri}?f={F_JSONLD}{serialized_query_params}'
+ }]
+
content = render_j2_template(api.tpl_config,
'collections/edr/query.html', data,
api.default_locale)
diff --git a/pygeoapi/templates/_base.html b/pygeoapi/templates/_base.html
index b537010..5b57d5f 100644
--- a/pygeoapi/templates/_base.html
+++ b/pygeoapi/templates/_base.html
@@ -70,7 +70,7 @@
{% set links_found = namespace(json=0, jsonld=0) %}
{% for link in data['links'] %}
- {% if link['rel'] == 'alternate' and link['type'] and link['type'] in ['application/json', 'application/geo+json'] %}
+ {% if link['rel'] == 'alternate' and link['type'] and link['type'] in ['application/json', 'application/geo+json', 'application/prs.coverage+json'] %}
{% set links_found.json = 1 %}
{% trans %}json{% endtrans %}
{% elif link['rel'] == 'alternate' and link['type'] and link['type'] == 'application/ld+json' %}
diff --git a/pygeoapi/templates/collections/edr/query.html b/pygeoapi/templates/collections/edr/query.html
index af426c7..7563273 100644
--- a/pygeoapi/templates/collections/edr/query.html
+++ b/pygeoapi/templates/collections/edr/query.html
@@ -8,7 +8,7 @@
{% set col_title = link['title'] %}
{% endif %}
{% endfor %}
-/ {% trans %}Items{% endtrans %}
+/ {% trans query_type=data.query_type %}{{ query_type }}{% endtrans %}
{% endblock %}
{% block extrahead %}