Changes between Initial Version and Version 1 of MapGuideRfc55


Ignore:
Timestamp:
Aug 7, 2008, 3:47:54 PM (16 years ago)
Author:
hugueswski
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc55

    v1 v1  
     1= !MapGuide RFC 55 - Switch from PROJ4 to CS-Map coordinate system library =
     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||August 07, 2008||
     11||Last Modified||Hugues Wisniewski [[Timestamp]]||
     12||Author||Hugues Wisniewski||
     13||RFC Status||draft||
     14||Implementation Status||(pending, under development, completed)||
     15||Proposed Milestone||2.1||
     16||Assigned PSC guide(s)||Tom Fukushima||
     17||'''Voting History'''|| ||
     18||+1|| ||
     19||+0|| ||
     20||-0|| ||
     21||-1|| ||
     22||no vote|| ||
     23
     24== Overview ==
     25
     26For the coordinate system work, MapGuide uses the PROJ4 library which is wrapped into the MgGeometry.dll binary module.
     27The coordinate system functionality is exposed through all the API interfaces prefixed with MgCoodinateSystem
     28This proposal aims at replacing the PROJ4 implementation with the CS-Map implementation. CS-Map was recently open sourced and posted on at:[[BR]]
     29http://svn.osgeo.org/metacrs/csmap/
     30
     31== Motivation ==
     32
     33The CS-Map code has a broader range of functionality than what PROJ4 can offer.[[BR]]
     34[[BR]]
     35CS-Map can address things that are not well addressed by PROJ4 like:[[BR]]
     36[[BR]]
     37- vertical datum shifting[[BR]]
     38- WKT transformations in multiple flavors like Oracle[[BR]]
     39- greater coverage in terms of coordinate system definitions, right now more than 4000 systems, roughly 700 datums and 100 ellipsoids[[BR]]
     40- CS-Map can provide an implementation to all the MgCoordinateSystem API methods that currently throw MgNotImplementedException[[BR]]
     41
     42== Proposed Solution ==
     43
     44The current MgCoordinateSystem API implementation code is a wrapper around PROJ4[[BR]]
     45This implementation code is located here: [[BR]]
     46http://svn.osgeo.org/mapguide/trunk/MgDev/Common/CoordinateSystem/ [[BR]]
     47The new API implementation would wrap the CS-Map code hosted at:[[BR]]
     48http://svn.osgeo.org/metacrs/csmap/trunk/CsMapDev/ [[BR]]
     49[[BR]]
     50This API is part of the module MgGeometry.dll generated from the project:[[BR]]
     51http://svn.osgeo.org/mapguide/trunk/MgDev/Common/Geometry/Geometry.vcproj [[BR]]
     52[[BR]]
     53This project is used in the solutions:[[BR]]
     54[[BR]]
     55http://svn.osgeo.org/mapguide/trunk/MgDev/Server/Server.sln [[BR]]
     56http://svn.osgeo.org/mapguide/trunk/MgDev/Web/src/WebTier.sln [[BR]]
     57[[BR]]
     58The current PROJ4 implementation would not be supported anymore. Only CS-Map would remain in the place where the PROJ4 currently resides:[[BR]]
     59http://svn.osgeo.org/mapguide/trunk/MgDev/Common/CoordinateSystem/ [[BR]]
     60
     61== Implications ==
     62
     63PROJ4 would not be supported anymore.[[BR]]
     64The coordinate system definitions will come from the CS-Map coordinate system dictionaries.[[BR]]
     65All the MgCoordinateSystem API methods that currently throw MgNotImplementedException would have a fully functional implementation.[[BR]]
     66The build process documentation will have to be updated to explain how to get and build CS-Map and then build MapGuide using CS-Map instead of PROJ4.[[BR]]
     67
     68== Test Plan ==
     69
     70CS-Map has its own standalone unit tests so it can be tested separately.[[BR]]
     71The existing unit MapGuide unit tests would remain the same.[[BR]]
     72More can be added, especially for the new functionality that CS-Map provides, like the WKT conversions.[[BR]]
     73
     74== Funding/Resources ==
     75
     76Provided by Autodesk.[[BR]]
     77
     78== Additional Notes ==
     79
     80The code is ready to be distributed.[[BR]]
     81If this request is accepted, the implementation would be trivial as it has already been intensively tested and is fully functional.[[BR]]
     82