[mapguide-commits] r5212 - in trunk/MgDev: Common/MapGuideCommon/Services Common/PlatformBase/Services Server/src/Services/Feature Web/src/HttpHandler

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Sep 29 08:23:23 EDT 2010


Author: liuar
Date: 2010-09-29 12:23:23 +0000 (Wed, 29 Sep 2010)
New Revision: 5212

Modified:
   trunk/MgDev/Common/MapGuideCommon/Services/ProxyFeatureService.cpp
   trunk/MgDev/Common/MapGuideCommon/Services/ProxyFeatureService.h
   trunk/MgDev/Common/PlatformBase/Services/FeatureService.h
   trunk/MgDev/Server/src/Services/Feature/OpGetWfsFeature.cpp
   trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.cpp
   trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.h
   trunk/MgDev/Web/src/HttpHandler/HttpResourceStrings.cpp
   trunk/MgDev/Web/src/HttpHandler/HttpResourceStrings.h
   trunk/MgDev/Web/src/HttpHandler/HttpWfsGetFeature.cpp
   trunk/MgDev/Web/src/HttpHandler/WfsGetFeatureParams.cpp
   trunk/MgDev/Web/src/HttpHandler/WfsGetFeatureParams.h
Log:
Ticket #1421 OGC WFS 1.1.0 Support

14. Test wfs:wfs-1.1.0-Basic-GetFeature-tc50.1 (s0002/d1e35137_1/d1e740_1/d1e25217_1/d1e6264_1)

Assertion: When the SortBy parameter is used the resulting feature set must be properly sorted according to the sort criteria.

MapGuide WFS didn't support sortby parameter, I extend the GetWfsFeature API to accept a sortCriteria parameter to sort the feature set base on FDO OrderBy filter.

Note: not all FDO providers support OrderBy.

Modified: trunk/MgDev/Common/MapGuideCommon/Services/ProxyFeatureService.cpp
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/Services/ProxyFeatureService.cpp	2010-09-29 10:46:47 UTC (rev 5211)
+++ trunk/MgDev/Common/MapGuideCommon/Services/ProxyFeatureService.cpp	2010-09-29 12:23:23 UTC (rev 5212)
@@ -1406,13 +1406,14 @@
                                                    CREFSTRING filter,
                                                    INT32 maxFeatures,
                                                    CREFSTRING wfsVersion,
-                                                   CREFSTRING outputFormat)
+                                                   CREFSTRING outputFormat,
+                                                   CREFSTRING sortCriteria)
 {
     MgCommand cmd;
     cmd.ExecuteCommand(m_connProp,                                  // Connection
                        MgCommand::knObject,                         // Return type expected
                        MgFeatureServiceOpId::GetWfsFeature_Id,      // Command Code
-                       8,                                           // No of arguments
+                       9,                                           // No of arguments
                        Feature_Service,                             // Service Id
                        BUILD_VERSION(2,3,0),                        // Operation version
                        MgCommand::knObject, featureSourceId,        // Argument#1
@@ -1423,6 +1424,7 @@
                        MgCommand::knInt32,  maxFeatures,            // Argument#6
                        MgCommand::knString, &wfsVersion,            // Argument#7
                        MgCommand::knString, &outputFormat,          // Argument#8
+                       MgCommand::knString, &sortCriteria,          // Argument#9
                        MgCommand::knNone);                          // End of argument
 
     SetWarning(cmd.GetWarningObject());

Modified: trunk/MgDev/Common/MapGuideCommon/Services/ProxyFeatureService.h
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/Services/ProxyFeatureService.h	2010-09-29 10:46:47 UTC (rev 5211)
+++ trunk/MgDev/Common/MapGuideCommon/Services/ProxyFeatureService.h	2010-09-29 12:23:23 UTC (rev 5212)
@@ -1106,13 +1106,13 @@
     ///
     /// <!-- Syntax in .Net, Java, and PHP -->
     /// \htmlinclude DotNetSyntaxTop.html
-    /// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string wfsVersion, string outputFormat);
+    /// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string wfsVersion, string outputFormat, string sortCriteria);
     /// \htmlinclude SyntaxBottom.html
     /// \htmlinclude JavaSyntaxTop.html
-    /// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, String featureClass, MgStringCollection requiredProperties, String srs, String filter, int maxFeatures, string wfsVersion, string outputFormat);
+    /// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string wfsVersion, string outputFormat, string sortCriteria);
     /// \htmlinclude SyntaxBottom.html
     /// \htmlinclude PHPSyntaxTop.html
-    /// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string wfsVersion, string outputFormat);
+    /// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string wfsVersion, string outputFormat, string sortCriteria);
     /// \htmlinclude SyntaxBottom.html
     ///
     /// \param featureSourceId (MgResourceIdentifier)
@@ -1138,6 +1138,8 @@
     /// the retrieved feature information.
     /// The supported values of output format are specified in OpenGIS Web Feature Service (WFS) Implementation Specification - section 9.2
     /// http://portal.opengeospatial.org/files/?artifact_id=8339
+    /// \param sortCriteria (String/string)
+    /// A string identifying the sort criteria
     ///
     /// \return
     /// Returns an MgByteReader containing the requested feature information.
@@ -1146,7 +1148,7 @@
     /// \exception MgInvalidArgumentException
     ///
     MgByteReader* GetWfsFeature(MgResourceIdentifier* featureSourceId, CREFSTRING featureClass,
-        MgStringCollection* requiredProperties, CREFSTRING srs, CREFSTRING filter, INT32 maxFeatures,CREFSTRING wfsVersion, CREFSTRING outputFormat);
+        MgStringCollection* requiredProperties, CREFSTRING srs, CREFSTRING filter, INT32 maxFeatures,CREFSTRING wfsVersion, CREFSTRING outputFormat, CREFSTRING sortCriteria);
 
     ////////////////////////////////////////////////////////////////////////////////
     /// \brief

Modified: trunk/MgDev/Common/PlatformBase/Services/FeatureService.h
===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/FeatureService.h	2010-09-29 10:46:47 UTC (rev 5211)
+++ trunk/MgDev/Common/PlatformBase/Services/FeatureService.h	2010-09-29 12:23:23 UTC (rev 5212)
@@ -1610,13 +1610,13 @@
     ///
     /// <!-- Syntax in .Net, Java, and PHP -->
     /// \htmlinclude DotNetSyntaxTop.html
-    /// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string wfsVersion, string outputFormat);
+    /// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string wfsVersion, string outputFormat, string sortCriteria);
     /// \htmlinclude SyntaxBottom.html
     /// \htmlinclude JavaSyntaxTop.html
-    /// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, String featureClass, MgStringCollection requiredProperties, String srs, String filter, int maxFeatures, string wfsVersion, string outputFormat);
+    /// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string wfsVersion, string outputFormat, string sortCriteria);
     /// \htmlinclude SyntaxBottom.html
     /// \htmlinclude PHPSyntaxTop.html
-    /// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string wfsVersion, string outputFormat);
+    /// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string wfsVersion, string outputFormat, string sortCriteria);
     /// \htmlinclude SyntaxBottom.html
     ///
     /// \param featureSourceId (MgResourceIdentifier)
@@ -1642,14 +1642,16 @@
     /// the retrieved feature information.
     /// The supported values of output format are specified in OpenGIS Web Feature Service (WFS) Implementation Specification - section 9.2
     /// http://portal.opengeospatial.org/files/?artifact_id=8339
-    /// 
+    /// \param sortCriteria (String/string)
+    /// A string identifying the sort criteria
+    ///
     /// \return
     /// Returns an MgByteReader containing the requested feature information.
     ///
     /// \exception MgInvalidArgumentException
     ///
     virtual MgByteReader* GetWfsFeature(MgResourceIdentifier* featureSourceId, CREFSTRING featureClass,
-        MgStringCollection* requiredProperties, CREFSTRING srs, CREFSTRING filter, INT32 maxFeatures,CREFSTRING wfsVersion, CREFSTRING outputFormat) = 0;
+        MgStringCollection* requiredProperties, CREFSTRING srs, CREFSTRING filter, INT32 maxFeatures,CREFSTRING wfsVersion, CREFSTRING outputFormat, CREFSTRING sortCriteria) = 0;
 
     ////////////////////////////////////////////////////////////////////////////////
     /// \brief

Modified: trunk/MgDev/Server/src/Services/Feature/OpGetWfsFeature.cpp
===================================================================
--- trunk/MgDev/Server/src/Services/Feature/OpGetWfsFeature.cpp	2010-09-29 10:46:47 UTC (rev 5211)
+++ trunk/MgDev/Server/src/Services/Feature/OpGetWfsFeature.cpp	2010-09-29 12:23:23 UTC (rev 5212)
@@ -111,7 +111,7 @@
         // Write the response
         EndExecution(byteReader);
     }
-    else if (8 == m_packet.m_NumArguments)
+    else if (9 == m_packet.m_NumArguments)
     {
         // Get the feature source
         Ptr<MgResourceIdentifier> featureSourceId = (MgResourceIdentifier*)m_stream->GetObject();
@@ -143,6 +143,10 @@
         STRING outputFormat;
         m_stream->GetString(outputFormat);
 
+        // Get the sort criteria
+        STRING sortCriteria;
+        m_stream->GetString(sortCriteria);
+
         BeginExecution();
 
         MG_LOG_OPERATION_MESSAGE_PARAMETERS_START();
@@ -161,13 +165,15 @@
         MG_LOG_OPERATION_MESSAGE_ADD_STRING(wfsVersion.c_str());
         MG_LOG_OPERATION_MESSAGE_ADD_SEPARATOR();
         MG_LOG_OPERATION_MESSAGE_ADD_STRING(outputFormat.c_str());
+        MG_LOG_OPERATION_MESSAGE_ADD_SEPARATOR();
+        MG_LOG_OPERATION_MESSAGE_ADD_STRING(sortCriteria.c_str());
         MG_LOG_OPERATION_MESSAGE_PARAMETERS_END();
 
         Validate();
 
         // Execute the operation
         Ptr<MgByteReader> byteReader = m_service->GetWfsFeature(featureSourceId, featureClass,
-            requiredProperties, srs, filter, maxFeatures, wfsVersion, outputFormat);
+            requiredProperties, srs, filter, maxFeatures, wfsVersion, outputFormat, sortCriteria);
 
         // Write the response
         EndExecution(byteReader);

Modified: trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.cpp
===================================================================
--- trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.cpp	2010-09-29 10:46:47 UTC (rev 5211)
+++ trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.cpp	2010-09-29 12:23:23 UTC (rev 5212)
@@ -1700,13 +1700,13 @@
 ///
 /// <!-- Syntax in .Net, Java, and PHP -->
 /// \htmlinclude DotNetSyntaxTop.html
-/// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string outputFormat);
+/// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string wfsVersion, string outputFormat, string sortCriteria);
 /// \htmlinclude SyntaxBottom.html
 /// \htmlinclude JavaSyntaxTop.html
-/// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, String featureClass, MgStringCollection requiredProperties, String srs, String filter, int maxFeatures, string outputFormat);
+/// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string wfsVersion, string outputFormat, string sortCriteria);
 /// \htmlinclude SyntaxBottom.html
 /// \htmlinclude PHPSyntaxTop.html
-/// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string outputFormat);
+/// virtual MgByteReader GetWfsFeature(MgResourceIdentifier featureSourceId, string featureClass, MgStringCollection requiredProperties, string srs, string filter, int maxFeatures, string wfsVersion, string outputFormat, string sortCriteria);
 /// \htmlinclude SyntaxBottom.html
 ///
 /// \param featureSourceId (MgResourceIdentifier)
@@ -1732,6 +1732,8 @@
 /// the retrieved feature information.
 /// The supported values of output format are specified in OpenGIS Web Feature Service (WFS) Implementation Specification - section 9.2
 /// http://portal.opengeospatial.org/files/?artifact_id=8339
+/// \param sortCriteria (String/string)
+/// A string identifying the sort criteria
 ///
 /// \return
 /// Returns an MgByteReader containing the requested feature information.
@@ -1745,7 +1747,8 @@
                                                      CREFSTRING wfsFilter, 
                                                      INT32 maxFeatures,
                                                      CREFSTRING wfsVersion,
-                                                     CREFSTRING outputFormat)
+                                                     CREFSTRING outputFormat,
+                                                     CREFSTRING sortCriteria)
 {
     MG_LOG_TRACE_ENTRY(L"MgServerFeatureService::GetWfsFeature()");
 
@@ -1834,6 +1837,31 @@
         options->SetFilter(fdoFilterString);
     }
 
+    if(!sortCriteria.empty())
+    {
+        Ptr<MgStringCollection> orderByProperties = new MgStringCollection();
+        int orderOption = MgOrderingOption::Ascending;
+
+        STRING sSortCriteria = sortCriteria;
+        STRING::size_type pos = sSortCriteria.find_last_of(L" ");
+        if(pos != STRING::npos)
+        {
+            STRING sSortByProperty = sSortCriteria.substr(0, pos);
+            orderByProperties->Add(sSortByProperty);
+            
+            STRING sSortOption  = MgUtil::ToUpper(sSortCriteria.substr(pos+1));
+            if(sSortOption == L"D")
+            {
+                orderOption = MgOrderingOption::Descending;
+            }
+        }
+        else
+        {
+            orderByProperties->Add(sortCriteria);
+        }
+
+        options->SetOrderingFilter(orderByProperties,orderOption);
+    }
     // TODO: can FeatureName be an extension name rather than a FeatureClass?
     Ptr<MgFeatureReader> mgfReader = SelectFeatures(fs, lfeatureName, options);
 
@@ -1932,7 +1960,7 @@
                                                      CREFSTRING wfsFilter,
                                                      INT32 maxFeatures)
 {
-    return GetWfsFeature(fs, featureClass, propNames, srs, wfsFilter, maxFeatures, L"1.0.0", L"2.1.2");
+    return GetWfsFeature(fs, featureClass, propNames, srs, wfsFilter, maxFeatures, L"1.0.0", L"text/xml; subtype=gml/2.1.2",L"");
 }
 
 

Modified: trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.h
===================================================================
--- trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.h	2010-09-29 10:46:47 UTC (rev 5211)
+++ trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.h	2010-09-29 12:23:23 UTC (rev 5212)
@@ -912,6 +912,9 @@
     /// The supported values of output format are specified in OpenGIS Web Feature Service (WFS) Implementation Specification - section 9.2
     /// http://portal.opengeospatial.org/files/?artifact_id=8339
     /// </param>
+    /// <param name="sortCriteria">Input
+    /// A string identifying the sort criteria
+    /// </param>
     /// <returns>
     /// Returns an MgByteReader containing the requested feature information.
     /// </returns>
@@ -919,7 +922,7 @@
     /// EXCEPTIONS:
     /// MgInvalidArgumentException
     MgByteReader* GetWfsFeature(MgResourceIdentifier* featureSourceId, CREFSTRING featureClass,
-        MgStringCollection* requiredProperties, CREFSTRING srs, CREFSTRING filter, INT32 maxFeatures, CREFSTRING wfsVersion, CREFSTRING outputFormat);
+        MgStringCollection* requiredProperties, CREFSTRING srs, CREFSTRING filter, INT32 maxFeatures, CREFSTRING wfsVersion, CREFSTRING outputFormat, CREFSTRING sortCriteria);
 
     ///////////////////////////////////////////////////////////////////////////
     /// This method has been deprecated. Use the above method.

Modified: trunk/MgDev/Web/src/HttpHandler/HttpResourceStrings.cpp
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/HttpResourceStrings.cpp	2010-09-29 10:46:47 UTC (rev 5211)
+++ trunk/MgDev/Web/src/HttpHandler/HttpResourceStrings.cpp	2010-09-29 12:23:23 UTC (rev 5212)
@@ -311,6 +311,7 @@
 const STRING MgHttpResourceStrings::reqWfsFilter = L"FILTER";
 const STRING MgHttpResourceStrings::reqWfsBbox = L"BBOX";
 const STRING MgHttpResourceStrings::reqWfsOutputFormat = L"OUTPUTFORMAT";
+const STRING MgHttpResourceStrings::reqWfsSortBy = L"SORTBY";
 
 // Web Application Parameters
 const STRING MgHttpResourceStrings::reqFormat = L"FORMAT";

Modified: trunk/MgDev/Web/src/HttpHandler/HttpResourceStrings.h
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/HttpResourceStrings.h	2010-09-29 10:46:47 UTC (rev 5211)
+++ trunk/MgDev/Web/src/HttpHandler/HttpResourceStrings.h	2010-09-29 12:23:23 UTC (rev 5212)
@@ -223,6 +223,7 @@
     static const STRING reqWfsFilter;
     static const STRING reqWfsBbox;
     static const STRING reqWfsOutputFormat;
+    static const STRING reqWfsSortBy;
 
     // PREDEFINED WEB APPLICATION REQUEST PARAMETERS
     static const STRING reqFormat;

Modified: trunk/MgDev/Web/src/HttpHandler/HttpWfsGetFeature.cpp
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/HttpWfsGetFeature.cpp	2010-09-29 10:46:47 UTC (rev 5211)
+++ trunk/MgDev/Web/src/HttpHandler/HttpWfsGetFeature.cpp	2010-09-29 12:23:23 UTC (rev 5212)
@@ -228,9 +228,16 @@
                                 }
                             }
 
+                            STRING sSortCriteria = m_getFeatureParams->GetSortCriteria();
+                            if(!sSortCriteria.empty())
+                            {
+                                STRING::size_type pos = sSortCriteria.find_first_of(L":");
+                                sSortCriteria  = sSortCriteria.substr(pos+1);
+                            }
+
                             // Call the C++ API
                             Ptr<MgByteReader> resultReader = featureService->GetWfsFeature(featureSourceId, ((sSchemaHash.size()==0) ? sClass : sSchemaHash + _(":") + sClass),
-                                requiredProperties, m_getFeatureParams->GetSrs(), filter, numFeaturesToRetrieve, sVersion, sOutputFormat);
+                                requiredProperties, m_getFeatureParams->GetSrs(), filter, numFeaturesToRetrieve, sVersion, sOutputFormat,sSortCriteria);
 
                             // TODO How to determine number of features retrieved...?
                             // Note: for now, maxFeatures is managed by the MgWfsFeatures object. - TMT 2006-3-20

Modified: trunk/MgDev/Web/src/HttpHandler/WfsGetFeatureParams.cpp
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/WfsGetFeatureParams.cpp	2010-09-29 10:46:47 UTC (rev 5211)
+++ trunk/MgDev/Web/src/HttpHandler/WfsGetFeatureParams.cpp	2010-09-29 12:23:23 UTC (rev 5212)
@@ -68,6 +68,10 @@
 
     // Get the requested SRS value
     m_srs = GetRequestParameter(oServer,MgHttpResourceStrings::reqWfsSrsName);
+    if(m_srs.empty())
+    {
+        m_srs = GetSRSFromBbox(bbox);
+    }
 
     // Get the SRS in WKT form
     STRING srsWkt;
@@ -98,6 +102,9 @@
     // Get the wfs version 
     m_version = GetRequestParameter(oServer,MgHttpResourceStrings::reqWfsVersion);
 
+    // Get the sortby property name
+    m_sortCriteria = GetRequestParameter(oServer,MgHttpResourceStrings::reqWfsSortBy);
+
 }
 
 WfsGetFeatureParams::~WfsGetFeatureParams()
@@ -281,6 +288,23 @@
     }
 }
 
+
+// Get SRS from BBOX parameter
+STRING WfsGetFeatureParams::GetSRSFromBbox(CREFSTRING bbox)
+{
+    if(bbox.length() > 0)
+    {
+        // Build a filter from the bounding box
+        Ptr<MgStringCollection> bboxCoords = MgStringCollection::ParseCollection(bbox, L",");
+        if(bboxCoords->GetCount() >= 5)
+        {
+            return MgUtil::Trim(bboxCoords->GetItem(4));
+        }
+    }
+
+    return L"";
+}
+
 /// <summary>
 /// Retrieves the requested feature types
 /// </summary>
@@ -359,6 +383,17 @@
 }
 
 /// <summary>
+/// Retrieves the property name which is used sort the GetFeature result
+/// </summary>
+/// <returns>
+/// A STRING defining the property name which is used sort the GetFeature result
+/// </returns>
+STRING WfsGetFeatureParams::GetSortCriteria()
+{
+    return m_sortCriteria;
+}
+
+/// <summary>
 /// Performs a minimum amount of request parsing in order to determine
 /// whether this class can handle the specified XML request
 /// </summary>

Modified: trunk/MgDev/Web/src/HttpHandler/WfsGetFeatureParams.h
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/WfsGetFeatureParams.h	2010-09-29 10:46:47 UTC (rev 5211)
+++ trunk/MgDev/Web/src/HttpHandler/WfsGetFeatureParams.h	2010-09-29 12:23:23 UTC (rev 5212)
@@ -118,6 +118,14 @@
     STRING GetVersion();
 
     /// <summary>
+    /// Retrieves the sort criteria
+    /// </summary>
+    /// <returns>
+    /// A STRING defining the sort criteria
+    /// </returns>
+    STRING GetSortCriteria();
+
+    /// <summary>
     /// Performs a minimum amount of request parsing in order to determine
     /// whether this class can handle the specified XML request
     /// </summary>
@@ -147,6 +155,7 @@
 
     MgStringCollection* GetParenthesisedList(CREFSTRING sourceString);
     void BuildFilterStrings(CREFSTRING filters, CREFSTRING featureIds, CREFSTRING bbox);
+    STRING GetSRSFromBbox(CREFSTRING bbox);
     bool ParseQueryElement(MgOgcWfsServer& oServer,MgXmlParser& parser,MgXmlNamespaceManager& oNamespaces);
     bool ParseFilterElement(MgOgcWfsServer& oServer,MgXmlParser& parser,MgXmlNamespaceManager& oNamespaces);
 
@@ -173,6 +182,7 @@
     STRING m_srs;
     STRING m_outputFormat;
     STRING m_version;
+    STRING m_sortCriteria;
 };
 
 #endif  // _FS_WFS_GET_FEATURE_PARAMS_H



More information about the mapguide-commits mailing list