Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

suggestion for implementing wms/wmts/wfs/... links in record.geojson #815

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pvgenuchten
Copy link
Contributor

Overview

populate links in record.geojson for common link types using the suggested templated approach

Related Issue / Discussion

in #814 I raised the question how record.geojson links are modelled from the pycsw datamodel for the typical wms/wfs protocols. This PR presents a suggestion for implementation

Additional Information

A lot of conventions are adopted and discussions are taking place on how one can model a link between a iso19139 metadata record and a specific layer in ows capabilities. In general 2 approaches are common, append on the metadatalink to the service the &layers is parameter to detail the relevant layer, others adopted the &layers={onlineresource.name} convention. This PR supports both cases (but will cause problems if none of the 2 are implemented)

To identify the type of link, the catinterop identifier of the protocol is assumed in link[type], else the link will be treated as a generic link

Contributions and Licensing

(as per https://github.com/geopython/pycsw/blob/master/CONTRIBUTING.rst#contributions-and-licensing)

  • I'd like to contribute [feature X|bugfix Y|docs|something else] to pycsw. I confirm that my contributions to pycsw will be compatible with the pycsw license guidelines at the time of contribution.
  • I have already previously agreed to the pycsw Contributions and Licensing Guidelines

@tomkralidis
Copy link
Member

@pvgenuchten can you rebase?

if 'OGC:WMS' in link['protocol'].upper():
link2['rel'] = 'map'
link2['templated'] = 'true'
# assumes link['url'] includes '&layers=...', else link['name'] contains layername(s)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

alternative would be to use owslib.wms130.__build_getmap_request (but challenge to replace bbox array for {bbox})

'count': {'type': 'number', 'format': 'integer'}}
link2['type'] = 'application/gml+xml'

#elif 'OSGEO:TMS' in link['protocol'].upper():
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or better/also to use xyz (both not in catinterop yet, see OSGeo/Cat-Interop#42)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants