Changes between Version 1 and Version 2 of MapGuideRfc98


Ignore:
Timestamp:
Jun 21, 2010, 10:19:00 AM (12 years ago)
Author:
NormOlsen
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc98

    v1 v2  
    1 asdfsadfasdf
     1= !MapGuide RFC 98 - E{SG/SRID Code Upgrade =
     2
     3This page contains an change request (RFC) for the !MapGuide Open Source project.
     4More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page.
     5
     6
     7== Status ==
     8
     9||RFC Template Version||(1.0)||
     10||Submission Date||21 June 2010||
     11||Last Modified||Norm Olsen 21 June 2010||
     12||Author||Norm Olsen||
     13||RFC Status||draft||
     14||Implementation Status||pending||
     15||Proposed Milestone||2.2||
     16||Assigned PSC guide(s)||(when determined)||
     17||'''Voting History'''||(vote date)||
     18||+1|| ||
     19||+0|| ||
     20||-0|| ||
     21||-1|| ||
     22||no vote|| ||
     23
     24== Overview ==
     25
     26CS-MAP Rfc 2 proposes to add three items to the coordinate system dictionary, and one item each to the Datums and Ellipsoid dictionaries.  (The format doesn't change, we'll be using currently unused holes in the structures.)  This RFC proposes to expose these new data values throught eh MgCoordinateSystem interface.  The items being added are EPSG code, Oracle SRID code, and the EPSG Quadrant code.
     27
     28== Motivation ==
     29
     30The EPSG code and the Oracle SRID code are becomming frequently desired/referenced data items.  Conversion between CS-MAP key name and EPSG code is currently possible, but requires the use of the NameMapper which can be rather slow if one intends to map large segments of the EPSG code set.  While supported in the NameMapper, mapping between CS-MAP key names and Oracle SRID codes is not expsed through the interface.  Implementation of this RFC would, in conjunction with CS-MAP RFC 2, enable direct access to both codes using the MgCoordinateSystem interface.
     31
     32There exists a problem encountered when using the latest version of WMS specification.  This specification now requires strict adherence to the axis specifications in Coordinate Reference System (CRS) definitions.  CS-MAP RFC 2 calls for the addition to the coordinate system dictionary an quadrant value (using the same values as the standard CS-MAP quad parameter) which indicates what the EPSG definition indicates the axis specification to be.  Implementation of this RFC will expose this value through the MgCoordinateSystem interface.
     33
     34== Proposed Solution ==
     35
     36Implementation of this RFC would be achieved by adding three new methods to the MgCoordinateSystem interface, and one new method to each of the MgCoordinateSystemDatum and MgCoordinateSystemEllipsoid interfaces as follows:
     37
     38INT32 MgCoordinateSystem::GetEpsgCode (void);
     39INT32 MgCoordinateSystem::GetSridCode (void);
     40INT16 MgCoordinateSystem::GetEpsgQuadrant (void);
     41INT32 MgCoordinateSystemDatum::GetEpsgCode (void);
     42INT32 MgCoordinateSystemEllipsoid::GetEpsgCode (void);
     43
     44All methods will return a zero if the information is unknown; no exceptions will be thrown.
     45
     46The quadrant values are (X is the first ordinate and Y is the second ordinate):
     47
     48||Value||Description||
     49|| 0||Unknown, assume 1||
     50|| 1||X increases to the east, Y increases to the north||
     51|| 2||X increases to the west, Y increases to the north||
     52|| 3||X increases to the west, Y increases to the south||
     53|| 4||X increases to the east, Y increases to the south||
     54||-1||X increases to the north, Y increases to the east||
     55||-2||X increases to the north, Y increases to the west||
     56||-1||X increases to the south, Y increases to the west||
     57||-1||X increases to the south, Y increases to the east||
     58
     59== Implications ==
     60
     61Since we would be using currently unused holes in the CS-MAP dictionary structures, it would be nice to rename these elements.  Doing so will break the buiold of MapGuide if the changes are not synchronized.
     62
     63== Test Plan ==
     64
     65A test function wioll be written which will cycle through the three dictionaries affected and the results of these new methods compared to the current contents of the NameMapper.  This effort will be done at the CS-MAP level.  As these methods are simple on liners, no special test module is being planned at the MgCoordinateSystem level.
     66
     67== Funding/Resources ==
     68
     69Software developement resources and funding to be provided by Autodesk.
     70