Changes between Version 1 and Version 2 of MapGuideRfc162


Ignore:
Timestamp:
Oct 2, 2017 4:21:56 AM (2 months ago)
Author:
jng
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc162

    v1 v2  
    99||RFC Template Version||(1.0)||
    1010||Submission Date||12 July 2017||
    11 ||Last Modified||12 July 2017||
     11||Last Modified||2 Oct 2017||
    1212||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||
    1616||Assigned PSC guide(s)||||
    1717||'''Voting History'''||||
     
    4444|| VERSION || 3.3.0 || Yes || Operation version ||
    4545|| 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) ||
    4849|| FORMAT || string || Yes || {{{text/xml}}} for XML, {{{application/json}}} for JSON ||
    4950|| CLEAN || 1/0 || Optional || If requested format is {{{application/json}}}, returns a clean JSON structure per [wiki:MapGuideRfc158] ||
    5051
    51 The response matches the new {{{CoordinateList-3.3.0.xsd}}} schema
     52The response matches the new {{{TransformedCoordinateCollection-3.3.0.xsd}}} schema
    5253
    5354{{{
    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>
    55113}}}
     114
     115The {{{<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
     117This 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.
    56118
    57119=== Transformation support for any mapagent operation that returns geometry ===
     
    62124
    63125 * {{{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)
    65127
    66128== Implications ==
     
    70132== Test Plan ==
    71133
    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.
    73138
    74139== Funding/Resources ==