Version 4 (modified by 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 Date | July 20, 2010 |
Last Modified | Bruce Dechant July 20, 2010 |
Author | Bruce Dechant |
RFC Status | draft |
Implementation Status | incomplete |
Proposed Milestone | 2.3 |
Assigned PSC guide(s) | Bruce Dechant |
Voting History | |
+1 | |
+0 | |
-0 | |
-1 | |
Abstained |
Overview
This RFC proposes to update the feature service GetCapabilites() API by adding an additional connection string parameter.
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
- The new connection string parameter will be added to the GetCapabilities() API. 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 API:
MgByteReader* GetCapabilities(CREFSTRING providerName, CREFSTRING connectionString);
Implications
This change will break existing API compatibility if we replace the existing API with the proposed NEW API.
Note: We could add the NEW API without changing the existing API. My concern with this approach is that it could cause confusion on which one to use and when.
Test Plan
Build/Run on Windows/Linux.
Funding/Resources
Supplied by Autodesk.