= !MapGuide RFC 162 - Enhanced coordinate system capabilities in mapagent = This page contains a change request (RFC) for the !MapGuide Open Source project. More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page. == Status == ||RFC Template Version||(1.0)|| ||Submission Date||12 July 2017|| ||Last Modified||12 July 2017|| ||Author||Jackie Ng|| ||RFC Status||draft|| ||Implementation Status||not started|| ||Proposed Milestone|||| ||Assigned PSC guide(s)|||| ||'''Voting History'''|||| ||+1|||| ||+0|||| ||-0|||| ||-1|||| ||Abstained|||| == Overview == This RFC proposes to enhance the coordinate system capabilities of the mapagent == Motivation == MapGuide has one of the most powerful coordinate system transformation libraries (CS-Map) with support for several thousand different coordinate systems out of the box. Yet, as a MapGuide HTTP client application none of these transformation capabilities are ever exposed to the mapagent. To tap into coordinate transformation requires using the MapGuide Web API and thus custom server-side code that a HTTP client application would have to call into. == Proposed Solution == This RFC will add the following enhancements to the mapagent === Batch Coordinate Transformation === We'll add a new mapagent operation for batch transformation of coordinates from one coordinate system to another || '''Name''' || '''Value''' || '''Required''' || '''Description''' || || OPERATION || CS.TRANSFORMCOORDINATES || Yes || Operation to execute || || VERSION || 3.3.0 || Yes || Operation version || || CLIENTAGENT || text || Optional || Descriptive text for client || || COORDINATESYSTEM || string || Yes || The CS-Map code describing the coordinate system of the input coordinates || || TRANSFORMTO || string || Yes || The CS-Map code of the coordinate system to transform the input coordinates to || || FORMAT || string || Yes || {{{text/xml}}} for XML, {{{application/json}}} for JSON || || CLEAN || 1/0 || Optional || If requested format is {{{application/json}}}, returns a clean JSON structure per [wiki:MapGuideRfc158] || The response matches the new {{{CoordinateList-3.3.0.xsd}}} schema {{{ TBD }}} === Transformation support for any mapagent operation that returns geometry === Any operation that returns geometry data will now have an optional {{{TRANSFORMTO}}} parameter, which if set (to an appropriate Mentor CS code) will instruct the supporting operation to transform the geometry result to the specified coordinate system. The following operations will have a new {{{3.3.0}}} version that supports the optional {{{TRANSFORMTO}}} parameter: * {{{SELECTFEATURES}}} * {{{SELECTAGGREGATES}}} (if a geometric aggregate expression is found. eg. {{{SpatialExtents}}}) == Implications == These are new API additions == Test Plan == == Funding/Resources == Community