wiki:MapGuideRfc55

Version 2 (modified by hugueswski, 16 years ago) ( diff )

--

MapGuide RFC 55 - Switch from PROJ4 to CS-Map coordinate system library

This page contains an change request (RFC) for the MapGuide Open Source project. More MapGuide RFCs can be found on the RFCs page.

Status

RFC Template Version(1.0)
Submission DateAugust 07, 2008
Last ModifiedHugues Wisniewski Timestamp
AuthorHugues Wisniewski
RFC Statusfor feview
Implementation Status(pending, under development, completed)
Proposed Milestone2.1
Assigned PSC guide(s)Bruce Dechant
Voting History
+1
+0
-0
-1
no vote

Overview

For the coordinate system work, MapGuide uses the PROJ4 library which is wrapped into the MgGeometry.dll binary module. The coordinate system functionality is exposed through all the API interfaces prefixed with MgCoodinateSystem This proposal aims at replacing the PROJ4 implementation with the CS-Map implementation. CS-Map was recently open sourced and posted on at:
http://svn.osgeo.org/metacrs/csmap/

Motivation

The CS-Map code has a broader range of functionality than what PROJ4 can offer.

CS-Map can address things that are not well addressed by PROJ4 like:

  • vertical datum shifting
  • WKT transformations in multiple flavors like Oracle
  • greater coverage in terms of coordinate system definitions, right now more than 4000 systems, roughly 700 datums and 100 ellipsoids
  • CS-Map can provide an implementation to all the MgCoordinateSystem API methods that currently throw MgNotImplementedException

Proposed Solution

The current MgCoordinateSystem API implementation code is a wrapper around PROJ4
This implementation code is located here:
http://svn.osgeo.org/mapguide/trunk/MgDev/Common/CoordinateSystem/
The new API implementation would wrap the CS-Map code hosted at:
http://svn.osgeo.org/metacrs/csmap/trunk/CsMapDev/

This API is part of the module MgGeometry.dll generated from the project:
http://svn.osgeo.org/mapguide/trunk/MgDev/Common/Geometry/Geometry.vcproj

This project is used in the solutions:

http://svn.osgeo.org/mapguide/trunk/MgDev/Server/Server.sln
http://svn.osgeo.org/mapguide/trunk/MgDev/Web/src/WebTier.sln

The current PROJ4 implementation would not be supported anymore. Only CS-Map would remain in the place where the PROJ4 currently resides:
http://svn.osgeo.org/mapguide/trunk/MgDev/Common/CoordinateSystem/

Implications

PROJ4 would not be supported anymore.
The coordinate system definitions will come from the CS-Map coordinate system dictionaries.
All the MgCoordinateSystem API methods that currently throw MgNotImplementedException would have a fully functional implementation.
The 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.

Test Plan

CS-Map has its own standalone unit tests so it can be tested separately.
The existing unit MapGuide unit tests would remain the same.
More can be added, especially for the new functionality that CS-Map provides, like the WKT conversions.

Funding/Resources

Provided by Autodesk.

Additional Notes

The code is ready to be distributed.
If this request is accepted, the implementation would be trivial as it has already been intensively tested and is fully functional.

Note: See TracWiki for help on using the wiki.