Changes between Version 1 and Version 2 of MapGuideRfc162
- Timestamp:
- 10/02/17 04:21:56 (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TabularUnified MapGuideRfc162
v1 v2 9 9 ||RFC Template Version||(1.0)|| 10 10 ||Submission Date||12 July 2017|| 11 ||Last Modified|| 12 July2017||11 ||Last Modified||2 Oct 2017|| 12 12 ||Author||Jackie Ng|| 13 ||RFC Status|| draft||14 ||Implementation Status|| not started||15 ||Proposed Milestone|| ||13 ||RFC Status||ready for review|| 14 ||Implementation Status||pending|| 15 ||Proposed Milestone||3.3|| 16 16 ||Assigned PSC guide(s)|||| 17 17 ||'''Voting History'''|||| … … 44 44 || VERSION || 3.3.0 || Yes || Operation version || 45 45 || CLIENTAGENT || text || Optional || Descriptive text for client || 46 || COORDINATESYSTEM || string || Yes || The CS-Map code describing the coordinate system of the input coordinates || 47 || TRANSFORMTO || string || Yes || The CS-Map code of the coordinate system to transform the input coordinates to || 46 || SOURCE || string || Yes || The CS-Map code describing the coordinate system of the input coordinates || 47 || TARGET || string || Yes || The CS-Map code of the coordinate system to transform the input coordinates to || 48 || COORDINATES || string || Yes || A comma-separated list of space-separated coordinate pairs (in the source coordinate system) || 48 49 || FORMAT || string || Yes || {{{text/xml}}} for XML, {{{application/json}}} for JSON || 49 50 || CLEAN || 1/0 || Optional || If requested format is {{{application/json}}}, returns a clean JSON structure per [wiki:MapGuideRfc158] || 50 51 51 The response matches the new {{{ CoordinateList-3.3.0.xsd}}} schema52 The response matches the new {{{TransformedCoordinateCollection-3.3.0.xsd}}} schema 52 53 53 54 {{{ 54 TBD 55 <?xml version="1.0" encoding="UTF-8"?> 56 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> 57 <xs:element name="TransformedCoordinateCollection"> 58 <xs:annotation> 59 <xs:documentation>A collection of transformed coordinates</xs:documentation> 60 </xs:annotation> 61 <xs:complexType> 62 <xs:sequence> 63 <xs:element name="CoordinateSystem" type="CoordinateSystemInfo" /> 64 <xs:element name="TransformedCoordinate" type="TransformedCoordinate" minOccurs="0" maxOccurs="unbounded" /> 65 </xs:sequence> 66 </xs:complexType> 67 </xs:element> 68 <xs:complexType name="CoordinateSystemInfo"> 69 <xs:annotation> 70 <xs:documentation>Information about the coordinate system</xs:documentation> 71 </xs:annotation> 72 <xs:sequence> 73 <xs:element name="MentorCode" type="xs:string"> 74 <xs:annotation> 75 <xs:documentation>Mentor (CS-Map) coordinate system code</xs:documentation> 76 </xs:annotation> 77 </xs:element> 78 <xs:element name="EpsgCode" type="xs:integer"> 79 <xs:annotation> 80 <xs:documentation>EPSG code</xs:documentation> 81 </xs:annotation> 82 </xs:element> 83 <xs:element name="Wkt" type="xs:string"> 84 <xs:annotation> 85 <xs:documentation>The well-known text of the coordinate system</xs:documentation> 86 </xs:annotation> 87 </xs:element> 88 </xs:sequence> 89 </xs:complexType> 90 <xs:complexType name="TransformedCoordinate"> 91 <xs:annotation> 92 <xs:documentation>Represents a transformed coordinate</xs:documentation> 93 </xs:annotation> 94 <xs:sequence> 95 <xs:element name="X" type="xs:double" minOccurs="0" maxOccurs="1"> 96 <xs:annotation> 97 <xs:documentation>x-coordinate</xs:documentation> 98 </xs:annotation> 99 </xs:element> 100 <xs:element name="Y" type="xs:double" minOccurs="0" maxOccurs="1"> 101 <xs:annotation> 102 <xs:documentation>y-coordinate</xs:documentation> 103 </xs:annotation> 104 </xs:element> 105 <xs:element name="Error" type="xs:string" minOccurs="0" maxOccurs="1"> 106 <xs:annotation> 107 <xs:documentation>The string token that failed to parse into a coordinate pair</xs:documentation> 108 </xs:annotation> 109 </xs:element> 110 </xs:sequence> 111 </xs:complexType> 112 </xs:schema> 55 113 }}} 114 115 The {{{<Error>}}} element in the schema is used to capture any string tokens in the {{{COORDINATES}}} operation parameter that does not parse out to a space-separated coordinate pair. Thus a successful batch transformation operation is one whose list of {{{<TransformedCoordinate>}}} elements do not have any {{{<Error>}}} elements set. 116 117 This mapagent operation supports both {{{GET}}} and {{{POST}}} methods. Bigger coordinate lists can be specified via {{{POST}}} to overcome natural (client-and-server-imposed) limits in query string size. 56 118 57 119 === Transformation support for any mapagent operation that returns geometry === … … 62 124 63 125 * {{{SELECTFEATURES}}} 64 * {{{SELECTAGGREGATES}}} (if a geometric aggregate expression is found. eg. {{{SpatialExtents}}} )126 * {{{SELECTAGGREGATES}}} (if a geometric aggregate expression is found. eg. {{{SpatialExtents}}}, otherwise {{{TRANSFORMTO}}} has no effect) 65 127 66 128 == Implications == … … 70 132 == Test Plan == 71 133 72 134 * Verify {{{SELECTFEATURES}}} and {{{SELECTAGGREGATES}}} behave as before without the {{{TRANSFORMTO}}} parameter 135 * Verify {{{SELECTFEATURES}}} and {{{SELECTAGGREGATES}}} (with {{{SpatialExtent}}} aggregate) output transformed coordinates according to the {{{TRANSFORMTO}}} parameter 136 * Verify that {{{SELECTFEATURES}}} and {{{SELECTAGGREGATES}}} (with {{{SpatialExtent}}} aggregate) with {{{CLEAN=1}}} {{{TRANSFORMTO=<output_cs>}}} outputs GeoJSON with transformed coordinates in {{{output_cs}}} 137 * Verify {{{CS.TRANSFORMCOORDINATES}}} with malformed {{{COORDINATE}}} strings, properly puts un-parseable tokens into the {{{<Error>}}} element of their respective {{{<TransformedCoordinate>}}} element in the operation response. 73 138 74 139 == Funding/Resources ==