[mapguide-commits] r9235 - in sandbox/jng/coordsys_mapagent: Common/Schema UnitTest/WebTier/MapAgent/MapAgentForms Web/src/HttpHandler

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Tue Sep 12 08:24:12 PDT 2017


Author: jng
Date: 2017-09-12 08:24:12 -0700 (Tue, 12 Sep 2017)
New Revision: 9235

Added:
   sandbox/jng/coordsys_mapagent/Common/Schema/CoordinateCollection-3.3.0.xsd
   sandbox/jng/coordsys_mapagent/UnitTest/WebTier/MapAgent/MapAgentForms/cstransformcoordinatesform.html
   sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpCsTransformCoordinates.cpp
   sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpCsTransformCoordinates.h
Modified:
   sandbox/jng/coordsys_mapagent/UnitTest/WebTier/MapAgent/MapAgentForms/coordinatesystemapi.html
   sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpHandler.vcxproj
   sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpHandler.vcxproj.filters
   sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpHandlerBuild.cpp
   sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpRequest.cpp
   sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpResourceStrings.cpp
   sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpResourceStrings.h
   sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/Makefile.am
   sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/XmlJsonConvert.cpp
Log:
Add support for new mapagent operation: CS.TRANSFORMCOORDINATES

This allows one to easily transform a set of coordinates (a comma-delimited set of space-delimited coordinate pairs) from one coordinate system to another. The XML response adheres to the new CoordinateCollection-3.3.0.xsd schema

Added: sandbox/jng/coordsys_mapagent/Common/Schema/CoordinateCollection-3.3.0.xsd
===================================================================
--- sandbox/jng/coordsys_mapagent/Common/Schema/CoordinateCollection-3.3.0.xsd	                        (rev 0)
+++ sandbox/jng/coordsys_mapagent/Common/Schema/CoordinateCollection-3.3.0.xsd	2017-09-12 15:24:12 UTC (rev 9235)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+  <xs:element name="CoordinateCollection">
+    <xs:annotation>
+      <xs:documentation>A collection of transformed coordinates</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="Coordinate" type="Coordinate" minOccurs="0" maxOccurs="unbounded" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:complexType name="Coordinate">
+    <xs:annotation>
+      <xs:documentation>Represents a transformed coordinate</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="X" type="xs:double" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>x-coordinate</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Y" type="xs:double" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>y-coordinate</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Error" type="xs:string" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>The string token that failed to parse into a coordinate pair</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+</xs:schema>

Modified: sandbox/jng/coordsys_mapagent/UnitTest/WebTier/MapAgent/MapAgentForms/coordinatesystemapi.html
===================================================================
--- sandbox/jng/coordsys_mapagent/UnitTest/WebTier/MapAgent/MapAgentForms/coordinatesystemapi.html	2017-09-12 15:17:11 UTC (rev 9234)
+++ sandbox/jng/coordsys_mapagent/UnitTest/WebTier/MapAgent/MapAgentForms/coordinatesystemapi.html	2017-09-12 15:24:12 UTC (rev 9235)
@@ -29,6 +29,7 @@
 <li><a href="csepsgcodetowktform.html" target="showform">ConvertEpsgCodeToWkt</a>
 <li><a href="csgetbaselibraryform.html" target="showform">GetBaseLibrary</a>
 <li><a href="csisvalidform.html" target="showform">IsValid</a>
+<li><a href="cstransformcoordinatesform.html" target="showform">TransformCoordinates</a>
 </ul>
 </body>
 </html>

Added: sandbox/jng/coordsys_mapagent/UnitTest/WebTier/MapAgent/MapAgentForms/cstransformcoordinatesform.html
===================================================================
--- sandbox/jng/coordsys_mapagent/UnitTest/WebTier/MapAgent/MapAgentForms/cstransformcoordinatesform.html	                        (rev 0)
+++ sandbox/jng/coordsys_mapagent/UnitTest/WebTier/MapAgent/MapAgentForms/cstransformcoordinatesform.html	2017-09-12 15:24:12 UTC (rev 9235)
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+    <head>
+        <title></title>
+        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
+        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <script type="text/javascript" src="setactiontarget.js">
+        </script>
+    </head>
+    <body>
+        <form name="input" action="" method="get" ID="Form1">
+        <b>Operation:</b>
+        <input type="text" name="OPERATION" value="CS.TRANSFORMCOORDINATES" size="50" ID="Text1">
+        <p> Version:
+        <input type="text" name="VERSION" value="3.3.0" size="10" ID="Text2">
+        <p> Locale:
+        <input type="text" name="LOCALE" value="en" size="10" ID="Text3">
+        <p> Client Agent:
+        <input type="text" name="CLIENTAGENT" value="MapGuide Developer" size="100">
+        <p> Source CS (CS-Map code):
+        <input type="text" name="SOURCE" value="" size="100" ID="Text4">
+        <p> Target CS (CS-Map code):
+        <input type="text" name="TARGET" value="" size="100" ID="Text5">
+        <p> Coordinates (in source CS. Comma-separated list of space-separated coordinate pairs):
+        <input type="text" name="COORDINATES" value="" size="100">
+        <p> Format:
+        <select name="FORMAT">
+        <option value="text/xml">text/xml</option>
+        <option value="application/json">application/json</option>
+        </select>
+        <p> Clean JSON: <input type="text" name="CLEAN" value="0" ID="TextClean">
+        <p>
+        <input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset">
+        </form>
+    </body>
+</html>

Added: sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpCsTransformCoordinates.cpp
===================================================================
--- sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpCsTransformCoordinates.cpp	                        (rev 0)
+++ sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpCsTransformCoordinates.cpp	2017-09-12 15:24:12 UTC (rev 9235)
@@ -0,0 +1,134 @@
+//
+//  Copyright (C) 2004-2017 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#include "HttpHandler.h"
+#include "HttpCsTransformCoordinates.h"
+
+HTTP_IMPLEMENT_CREATE_OBJECT(MgHttpCsTransformCoordinates)
+
+/// <summary>
+/// Initializes the common parameters and parameters specific to this request.
+/// </summary>
+/// <param name="name">Input
+/// MgHttpRequest
+/// This contains all the parameters of the request.
+/// </param>
+/// <returns>
+/// nothing
+/// </returns>
+MgHttpCsTransformCoordinates::MgHttpCsTransformCoordinates(MgHttpRequest *hRequest)
+{
+    InitializeCommonParameters(hRequest);
+
+    Ptr<MgHttpRequestParam> params = hRequest->GetRequestParam();
+    m_srcCs = params->GetParameterValue(MgHttpResourceStrings::reqCsSource);
+    m_dstCs = params->GetParameterValue(MgHttpResourceStrings::reqCsTarget);
+    m_coordinates = params->GetParameterValue(MgHttpResourceStrings::reqCsCoordinates);
+}
+
+/// <summary>
+/// Executes the specific request.
+/// </summary>
+/// <returns>
+/// MgHttpResponse
+/// This contains the response (including MgHttpResult and StatusCode) from the server.
+/// </returns>
+void MgHttpCsTransformCoordinates::Execute(MgHttpResponse& hResponse)
+{
+    Ptr<MgHttpResult> hResult = hResponse.GetResult();
+
+    MG_HTTP_HANDLER_TRY()
+
+    // Check common parameters
+    ValidateCommonParameters();
+
+    Ptr<MgCoordinateSystemFactory> factory = new MgCoordinateSystemFactory();
+    Ptr<MgCoordinateSystem> source = factory->CreateFromCode(m_srcCs);
+    Ptr<MgCoordinateSystem> target = factory->CreateFromCode(m_dstCs);
+
+    Ptr<MgTransform> xform = factory->GetTransform(source, target);
+    
+    std::string xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
+    xml += "<CoordinateCollection xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"CoordinateCollection-3.3.0.xsd\">";
+
+    std::wstringstream wss(m_coordinates);
+    STRING part;
+    while (std::getline(wss, part, L','))
+    {
+        xml += "<Coordinate>";
+        size_t found = part.find_first_of(L' ');
+        if (found != STRING::npos)
+        {
+            STRING sX = part.substr(0, found);
+            STRING sY = part.substr(found);
+
+            double x = MgUtil::StringToDouble(sX);
+            double y = MgUtil::StringToDouble(sY);
+
+            Ptr<MgCoordinate> coord = new MgCoordinateXY(x, y);
+            Ptr<MgCoordinate> tx = xform->Transform(coord);
+
+            std::string mbX;
+            std::string mbY;
+            MgUtil::DoubleToString(tx->GetX(), mbX);
+            MgUtil::DoubleToString(tx->GetY(), mbY);
+            
+            xml += "<X>";
+            xml += mbX;
+            xml += "</X>";
+
+            xml += "<Y>";
+            xml += mbY;
+            xml += "</Y>";
+        }
+        else 
+        {
+            xml += "<Error>";
+            std::string mbPart;
+            MgUtil::WideCharToMultiByte(part, mbPart);
+            xml += mbPart;
+            xml += "</Error>";
+        }
+        xml += "</Coordinate>";
+    }
+
+    xml += "</CoordinateCollection>";
+
+    Ptr<MgByteSource> byteSource = new MgByteSource((BYTE_ARRAY_IN)xml.c_str(), (INT32)xml.length());
+    byteSource->SetMimeType(MgMimeType::Xml);
+    Ptr<MgByteReader> byteReader = byteSource->GetReader();
+
+    ProcessFormatConversion(byteReader);
+
+    hResult->SetResultObject(byteReader, byteReader->GetMimeType());
+
+    MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpCsTransformCoordinates.Execute")
+}
+
+void MgHttpCsTransformCoordinates::ValidateOperationVersion()
+{
+    MG_HTTP_HANDLER_TRY()
+
+    INT32 version = m_userInfo->GetApiVersion();
+    if (version != MG_API_VERSION(3, 3, 0))
+    {
+        throw new MgInvalidOperationVersionException(
+            L"MgHttpCsTransformCoordinates.ValidateOperationVersion", __LINE__, __WFILE__, NULL, L"", NULL);
+    }
+
+    MG_HTTP_HANDLER_CATCH_AND_THROW(L"MgHttpCsTransformCoordinates.ValidateOperationVersion");
+}
\ No newline at end of file

Added: sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpCsTransformCoordinates.h
===================================================================
--- sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpCsTransformCoordinates.h	                        (rev 0)
+++ sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpCsTransformCoordinates.h	2017-09-12 15:24:12 UTC (rev 9235)
@@ -0,0 +1,54 @@
+//
+//  Copyright (C) 2004-2017 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef _CS_TRANSFORM_COORDINATES_H
+#define _CS_TRANSFORM_COORDINATES_H
+
+class MgHttpCsTransformCoordinates : public MgHttpRequestResponseHandler
+{
+    HTTP_DECLARE_CREATE_OBJECT()
+
+public:
+    /// <summary>
+    /// Initializes the common parameters of the request.
+    /// </summary>
+    /// <param name="name">Input
+    /// MgHttpRequest
+    /// This contains all the parameters of the request.
+    /// </param>
+    /// <returns>
+    /// nothing
+    /// </returns>
+    MgHttpCsTransformCoordinates(MgHttpRequest *hRequest);
+
+    /// <summary>
+    /// Executes the specific request.
+    /// </summary>
+    /// <param name="hResponse">Input
+    /// This contains the response (including MgHttpResult and StatusCode) from the server.
+    /// </param>
+    void Execute(MgHttpResponse& hResponse);
+
+    virtual void ValidateOperationVersion();
+
+private:
+    STRING m_srcCs;
+    STRING m_dstCs;
+    STRING m_coordinates;
+};
+
+#endif  // _CS_TRANSFORM_COORDINATES_H

Modified: sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpHandler.vcxproj
===================================================================
--- sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpHandler.vcxproj	2017-09-12 15:17:11 UTC (rev 9234)
+++ sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpHandler.vcxproj	2017-09-12 15:24:12 UTC (rev 9235)
@@ -210,6 +210,12 @@
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
     </ClCompile>
+    <ClCompile Include="HttpCsTransformCoordinates.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="HttpGeoBoundary.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
@@ -999,6 +1005,7 @@
   <ItemGroup>
     <ClInclude Include="HttpApplyResourcePackage.h" />
     <ClInclude Include="HttpChangeResourceOwner.h" />
+    <ClInclude Include="HttpCsTransformCoordinates.h" />
     <ClInclude Include="HttpGeoBoundary.h" />
     <ClInclude Include="HttpGeoConvexHull.h" />
     <ClInclude Include="HttpCopyResource.h" />

Modified: sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpHandler.vcxproj.filters
===================================================================
--- sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpHandler.vcxproj.filters	2017-09-12 15:17:11 UTC (rev 9234)
+++ sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpHandler.vcxproj.filters	2017-09-12 15:24:12 UTC (rev 9235)
@@ -416,6 +416,9 @@
     <ClCompile Include="HttpGeoBoundary.cpp">
       <Filter>GeoProcessing</Filter>
     </ClCompile>
+    <ClCompile Include="HttpCsTransformCoordinates.cpp">
+      <Filter>Coordinate System</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="HttpApplyResourcePackage.h">
@@ -814,6 +817,9 @@
     <ClInclude Include="HttpGeoBoundary.h">
       <Filter>GeoProcessing</Filter>
     </ClInclude>
+    <ClInclude Include="HttpCsTransformCoordinates.h">
+      <Filter>Coordinate System</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="HttpHandler.rc" />

Modified: sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpHandlerBuild.cpp
===================================================================
--- sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpHandlerBuild.cpp	2017-09-12 15:17:11 UTC (rev 9234)
+++ sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpHandlerBuild.cpp	2017-09-12 15:24:12 UTC (rev 9235)
@@ -36,6 +36,7 @@
 #include "HttpCsEnumerateCoordinateSystems.cpp"
 #include "HttpCsGetBaseLibrary.cpp"
 #include "HttpCsIsValid.cpp"
+#include "HttpCsTransformCoordinates.cpp"
 #include "HttpDeleteRepository.cpp"
 #include "HttpDeleteResource.cpp"
 #include "HttpDeleteResourceData.cpp"

Modified: sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpRequest.cpp
===================================================================
--- sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpRequest.cpp	2017-09-12 15:17:11 UTC (rev 9234)
+++ sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpRequest.cpp	2017-09-12 15:24:12 UTC (rev 9235)
@@ -123,6 +123,7 @@
 #include "HttpCsEnumerateCoordinateSystems.h"
 #include "HttpCsGetBaseLibrary.h"
 #include "HttpCsIsValid.h"
+#include "HttpCsTransformCoordinates.h"
 
 // Geo-Processing
 #include "HttpGeoBoundary.h"
@@ -435,6 +436,7 @@
     httpClassCreators[MgHttpResourceStrings::opCsEnumerateCoordinateSystems] = MgHttpCsEnumerateCoordinateSystems::CreateObject;
     httpClassCreators[MgHttpResourceStrings::opCsGetBaseLibrary] = MgHttpCsGetBaseLibrary::CreateObject;
     httpClassCreators[MgHttpResourceStrings::opCsIsValid] = MgHttpCsIsValid::CreateObject;
+    httpClassCreators[MgHttpResourceStrings::opCsTransformCoordinates] = MgHttpCsTransformCoordinates::CreateObject;
     httpClassCreators[MgHttpResourceStrings::opEnumerateUnmanagedData] = MgHttpEnumerateUnmanagedData::CreateObject;
     httpClassCreators[MgHttpResourceStrings::opGetFdoCacheInfo] = MgHttpGetFdoCacheInfo::CreateObject;
     httpClassCreators[MgHttpResourceStrings::opEnumerateApplicationTemplates] = MgHttpEnumerateApplicationTemplates::CreateObject;

Modified: sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpResourceStrings.cpp
===================================================================
--- sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpResourceStrings.cpp	2017-09-12 15:17:11 UTC (rev 9234)
+++ sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpResourceStrings.cpp	2017-09-12 15:24:12 UTC (rev 9235)
@@ -358,6 +358,7 @@
 const STRING MgHttpResourceStrings::opCsEnumerateCoordinateSystems = L"CS.ENUMERATECOORDINATESYSTEMS";
 const STRING MgHttpResourceStrings::opCsGetBaseLibrary = L"CS.GETBASELIBRARY";
 const STRING MgHttpResourceStrings::opCsIsValid = L"CS.ISVALID";
+const STRING MgHttpResourceStrings::opCsTransformCoordinates = L"CS.TRANSFORMCOORDINATES";
 
 // Web Application Operations
 const STRING MgHttpResourceStrings::opEnumerateApplicationTemplates = L"ENUMERATEAPPLICATIONTEMPLATES";
@@ -391,6 +392,9 @@
 const STRING MgHttpResourceStrings::reqCsWkt = L"CSWKT";
 const STRING MgHttpResourceStrings::reqCsCode = L"CSCODE";
 const STRING MgHttpResourceStrings::reqCsCategory = L"CSCATEGORY";
+const STRING MgHttpResourceStrings::reqCsSource = L"SOURCE";
+const STRING MgHttpResourceStrings::reqCsTarget = L"TARGET";
+const STRING MgHttpResourceStrings::reqCsCoordinates = L"COORDINATES";
 
 // Predefined Site Service Request Parameters
 const STRING MgHttpResourceStrings::reqGroup = L"GROUP";

Modified: sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpResourceStrings.h
===================================================================
--- sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpResourceStrings.h	2017-09-12 15:17:11 UTC (rev 9234)
+++ sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/HttpResourceStrings.h	2017-09-12 15:24:12 UTC (rev 9235)
@@ -362,6 +362,7 @@
     static const STRING opCsEnumerateCoordinateSystems;
     static const STRING opCsGetBaseLibrary;
     static const STRING opCsIsValid;
+    static const STRING opCsTransformCoordinates;
 
     // Web Applications Operations
     static const STRING opEnumerateApplicationTemplates;
@@ -395,6 +396,9 @@
     static const STRING reqCsWkt;
     static const STRING reqCsCode;
     static const STRING reqCsCategory;
+    static const STRING reqCsSource;
+    static const STRING reqCsTarget;
+    static const STRING reqCsCoordinates;
 
     // PREDEFINED SITE REQUEST PARAMETERS
     static const STRING reqGroup;

Modified: sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/Makefile.am
===================================================================
--- sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/Makefile.am	2017-09-12 15:17:11 UTC (rev 9234)
+++ sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/Makefile.am	2017-09-12 15:24:12 UTC (rev 9235)
@@ -34,6 +34,7 @@
   HttpCsEnumerateCoordinateSystems.cpp \
   HttpCsGetBaseLibrary.cpp \
   HttpCsIsValid.cpp \
+  HttpCsTransformCoordinates.cpp \
   HttpDeleteRepository.cpp \
   HttpDeleteResource.cpp \
   HttpDeleteResourceData.cpp \
@@ -168,6 +169,7 @@
   HttpCsEnumerateCoordinateSystems.h \
   HttpCsGetBaseLibrary.h \
   HttpCsIsValid.h \
+  HttpCsTransformCoordinates.h \
   HttpDeleteRepository.h \
   HttpDeleteResource.h \
   HttpDeleteResourceData.h \

Modified: sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/XmlJsonConvert.cpp
===================================================================
--- sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/XmlJsonConvert.cpp	2017-09-12 15:17:11 UTC (rev 9234)
+++ sandbox/jng/coordsys_mapagent/Web/src/HttpHandler/XmlJsonConvert.cpp	2017-09-12 15:24:12 UTC (rev 9235)
@@ -963,6 +963,8 @@
     //Miscellaneous MapGuide response types that don't have a formal schema
     s_elementPathTypeMap["/SessionTimeout/Value"] = XML_DATA_TYPE_NUM_INT;
     s_elementPathTypeMap["/FeatureInformation/SelectedFeatures/SelectedLayer/LayerMetadata/Property/Type"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/CoordinateCollection/Coordinate/X"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/CoordinateCollection/Coordinate/Y"] = XML_DATA_TYPE_NUM_DOUBLE;
 
     // ====================================================================================================================
     // Element paths below basically correspond to XML Schema elements that have minOccurs="1|0" and maxOccurs="unbounded"
@@ -1153,6 +1155,7 @@
     s_multiElementPaths.insert("/FeatureInformation/SelectedFeatures/SelectedLayer/LayerMetadata/Property");
     s_multiElementPaths.insert("/FeatureInformation/SelectedFeatures/SelectedLayer/Feature");
     s_multiElementPaths.insert("/FeatureInformation/SelectedFeatures/SelectedLayer/Feature/Property");
+    s_multiElementPaths.insert("/CoordinateCollection/Coordinate");
 
     return true;
 }
\ No newline at end of file



More information about the mapguide-commits mailing list