mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
194 lines
5.9 KiB
Python
194 lines
5.9 KiB
Python
from __future__ import (absolute_import, division, print_function)
|
|
|
|
|
|
# Follows the 4 aspects of service metadata
|
|
|
|
class IServiceIdentificationMetadata:
|
|
"""OO-interface to service identification metadata.
|
|
"""
|
|
|
|
type = property("""Service name (string): "WMS", "WFS", "WCS", or "SOS".""")
|
|
version = property("""Version of service protocol (string).""")
|
|
title = property("""Human-targeted title of service (string).""")
|
|
abstract = property("""Text describing the service (string).""")
|
|
keywords = property("""Keyword list (list).""")
|
|
accessconstraints = property("""Explanation of access constraints associated with service (string).""")
|
|
fees = property("""Explanation of fees associated with service (string).""")
|
|
|
|
|
|
class IServiceProviderMetadata:
|
|
"""OO-interface to service provider metadata.
|
|
"""
|
|
|
|
name = property("""Provider's name (string).""")
|
|
url = property("""URL for provider's web site (string).""")
|
|
contact = property("""How to contact the service provider (string).""")
|
|
|
|
|
|
class IServiceOperations:
|
|
"""OO-interface to service operations metadata.
|
|
"""
|
|
|
|
operations = property("""List of operation descriptors (list). These must implement IOperationMetadata (below).""")
|
|
exceptions = property("""List of exception formats (list).""")
|
|
|
|
|
|
class IServiceContents:
|
|
"""OO-interface to service contents metadata.
|
|
"""
|
|
|
|
contents = property("""List of content descriptors (list). These must implement IServiceContent (below).""")
|
|
|
|
|
|
# IServiceMetadata aggregates the 4 aspects above
|
|
|
|
class IServiceMetadata(IServiceOperations, IServiceContents):
|
|
"""OWS Metadata.
|
|
|
|
operations and contents properties are inherited.
|
|
"""
|
|
|
|
identification = property("""Object that implements IServiceIdentificationMetadata.""")
|
|
provider = property("""Object that implements IServiceProviderMetadata.""")
|
|
|
|
|
|
# A Service has an online resource URL as well as metadata collections
|
|
|
|
class IService(IServiceMetadata):
|
|
"""The OGC Web Service interface.
|
|
"""
|
|
|
|
url = property("""Online resource URL (string)""")
|
|
|
|
|
|
# specific service types are described below: WMS, WFS, WCS, SOS and WPS
|
|
|
|
class IWebMapService(IService):
|
|
"""Abstraction for an OGC Web Map Service (WMS).
|
|
"""
|
|
|
|
def getcapabilities():
|
|
"""Make a request to the WMS, returns an XML document wrapped in a
|
|
Python file object."""
|
|
|
|
def getmap(**kw):
|
|
"""Make a request to the WMS, returns an image wrapped in a Python
|
|
file object."""
|
|
|
|
def getfeatureinfo(**kw):
|
|
"""Make a request to the WMS, returns data."""
|
|
|
|
|
|
class IWebFeatureService(IService):
|
|
"""Abstraction for an OGC Web Feature Service (WFS).
|
|
"""
|
|
|
|
def getcapabilities():
|
|
"""Make a request to the WFS, returns an XML document wrapped in a
|
|
Python file object."""
|
|
|
|
def getfeature(**kw):
|
|
"""Make a request to the WFS, returns an XML document wrapped in a
|
|
Python file object."""
|
|
|
|
def describefeaturetype(**kw):
|
|
"""Make a request to the WFS, returns data."""
|
|
|
|
|
|
class IWebCoverageService(IService):
|
|
# TODO
|
|
pass
|
|
|
|
class ISensorObservationService(IService):
|
|
"""Abstraction for an OGC Sensor Observation Service (SOS).
|
|
"""
|
|
|
|
def getcapabilities():
|
|
"""Make a request to the SOS, returns an XML document wrapped in a
|
|
Python file object."""
|
|
|
|
def describesensor():
|
|
"""Make a request to the SOS, returns an XML document wrapped in a
|
|
Python file object."""
|
|
|
|
def getobservation():
|
|
"""Make a request to the SOS, returns an XML document wrapped in a
|
|
Python file object."""
|
|
|
|
class IWebProcessingService(IService):
|
|
"""
|
|
Abstract interface for an OGC Web Processing Service (WPS).
|
|
"""
|
|
|
|
def getcapabilities(**kw):
|
|
"""
|
|
Makes a GetCapabilities request to the remote WPS server,
|
|
returns an XML document wrapped in a python file-like object.
|
|
"""
|
|
|
|
def describeprocess(**kw):
|
|
"""
|
|
Makes a DescribeProcess request to the remote WPS server,
|
|
returns a Process object containing all the process metadata.
|
|
"""
|
|
|
|
def execute(**kw):
|
|
"""
|
|
Submits an Execute request to the remote WPS server,
|
|
returns a WPSExecution object, which can be used to monitor the status of the job, and ultimately retrieve the result.
|
|
"""
|
|
|
|
# Second level metadata interfaces
|
|
|
|
class IOperationMetadata:
|
|
"""OO-interface to operation metadata.
|
|
"""
|
|
|
|
name = property("""Operation name (string): GetCapabilities", for example.""")
|
|
formatOptions = property("""List of content types (list).""")
|
|
methods = property("""Mapping of method descriptors, keyed to HTTP verbs. Items must implement IMethodMetadata (below).""")
|
|
|
|
|
|
class IMethodMetadata:
|
|
"""OO-interface to method metadata.
|
|
"""
|
|
|
|
url = property("""Method endpoint URL (string).""")
|
|
# TODO: constraint
|
|
|
|
class IContentMetadata:
|
|
"""OO-interface to content metadata.
|
|
"""
|
|
|
|
id = property("""Unique identifier (string).""")
|
|
title = property("""Human-targeted title (string).""")
|
|
boundingBox = property("""Four bounding values and a coordinate reference system identifier (tuple).""")
|
|
boundingBoxWGS84 = property("""Four bounding values in WGS coordinates.""")
|
|
crsOptions = property("""List of available coordinate/spatial reference systems (list).""")
|
|
styles = property("""List of style dicts (list).""")
|
|
timepositions=property("""List of times for which data is available""")
|
|
defaulttimeposition=property("""Default time position""")
|
|
|
|
class iSensorObservationServiceContentMetadata(IContentMetadata):
|
|
"""Extension class for SOS specifics"""
|
|
pass
|
|
|
|
# XXX: needed?
|
|
|
|
class IContactMetadata:
|
|
"""OO-interface to OWS metadata.
|
|
|
|
Properties
|
|
----------
|
|
name : string
|
|
organization : string
|
|
address : string
|
|
city : string
|
|
region : string
|
|
postcode : string
|
|
country : string
|
|
email : string
|
|
hoursofservice: string
|
|
role: string
|
|
"""
|