wiki:MapGuideRfc105

Version 5 (modified by brucedechant, 14 years ago) ( diff )

--

MapGuide RFC 105 - Enhance feature service GetCapabilities API

This page contains a change request (RFC) for the MapGuide Open Source project. More MapGuide RFCs can be found on the RFCs page.

Status

RFC Template Version(1.0)
Submission DateJuly 20, 2010
Last ModifiedBruce Dechant July 20, 2010
AuthorBruce Dechant
RFC Statusdraft
Implementation Statusincomplete
Proposed Milestone2.3
Assigned PSC guide(s)Bruce Dechant
Voting History
+1
+0
-0
-1
Abstained

Overview

This RFC proposes to add a NEW GetCapabilites() API to the feature service which contains an additional connection string parameter. This will primarily allow for acquiring the "runtime" capabilities of WFS/WMS providers.

Motivation

The existing Feature service GetCapabilties() API works correctly for most providers, but fails to return the true capabilities of the server connected to by a WFS/WMS provider because there is no way to specify the connection string containing the server.

Here is a subset of the WFS capabilities showing the differences.

WFS provider returned capabilites (existing API):

<Filter>
  <SupportsGeodesicDistance>false</SupportsGeodesicDistance> 
  <SupportsNonLiteralGeometricOperations>true</SupportsNonLiteralGeometricOperations> 
</Filter>

WFS provider returned capabilites (NEW API with server specified in connection string):

<Filter>
  <Condition>
    <Type>Comparison</Type> 
    <Type>Like</Type> 
    <Type>Spatial</Type> 
  </Condition>
  <Spatial>
    <Operation>EnvelopeIntersects</Operation> 
    <Operation>Intersects</Operation> 
  </Spatial>
  <SupportsGeodesicDistance>false</SupportsGeodesicDistance> 
  <SupportsNonLiteralGeometricOperations>true</SupportsNonLiteralGeometricOperations> 
</Filter>

Proposed Solution

  • Create a NEW GetCapabilites() API that takes an additional connection string parameter. This NEW parameter will cause the API to behave exactly as before if it is an empty string.

Existing API:

    MgByteReader* GetCapabilities(CREFSTRING providerName);

Proposed NEW API:

    MgByteReader* GetCapabilities(CREFSTRING providerName, CREFSTRING connectionString);

Implications

This change will NOT break existing API compatibility.

Test Plan

Build/Run on Windows/Linux.

Funding/Resources

Supplied by Autodesk.

Note: See TracWiki for help on using the wiki.