Even Rouault kirjoitti 24.10.2017 klo 20:23:

On mardi 24 octobre 2017 17:07:51 CEST Ari Jolma wrote:

> Whoa! How hard can XML be? I have a real Capabilities document (from

> well known company) which defines *both* default and ows namespace to

> http://www.opengis.net/ows/2.0.

>

> Thus, to be sure, I need to look for *both* ows:ServiceIdentification

> and ServiceIdentification. Or maybe loop through all elements and check

> for both at each element?

If there's no ambiguity with elements having same names in different namespaces, you can just strip namespace prefixes from elements with

CPLStripXMLNamespace(psRoot, NULL, true)


I implemented a solution, where the namespace prefixes is a list (CPLStringList). That is probably a general solution and actually quite simple.

Some fundamental thoughts on how to use the driver. The idea is to allow starting from a GetCapabilities request. The initial dataset name is thus

WCS:URL

where the URL may be without any parameters. We'll add service and request parameters but *not* version or acceptVersions since the server should return the latest supported version. The one I test with seems to return 1.1.2 and 2.0.1 only when requested. We'll leave it to user to add the version/acceptVersions. The user can also add updateSequence and other parameters. If the user adds coverage/identifiers/coverageId then we'll proceed directly to DescribeCoverage or further to GetCoverage if there are bounding boxes or such. DescribeCoverage is needed unless it is cached (see below) since it probably contains important metadata (nodata value, min and max values etc).

Errors are reported to the user - it is important to know whether the error is HTTP 404 or ExceptionReport InvalidParameterValue.

The driver currently honors some HTTP parameters such as timeout length, authorization etc. and they are in the service XML. How to forward them to the driver in the case of this simple dataset name case? Environment variables or somehow coded into the dataset name? (for example "WCS:x=y,URL=url" ?)

Also, it would be useful to cache at least the capabilities and coverage description. I have not yet thought much about that but using something like $HOME/.gdal/wcs_cache would be preferred I guess? Then there is the question how the user can control refreshing the cache - with options as above?

Ari

--

Spatialys - Geospatial professional services

http://www.spatialys.com


_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to