Changes between Version 1 and Version 2 of MapGuideRfc35
- Timestamp:
- Sep 12, 2007, 8:51:29 AM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MapGuideRfc35
v1 v2 23 23 == Motivation == 24 24 25 The existing coordinate system API as written is not very convenient to use as a library with 3rd party applications or even with MapGuide. It also has an inconsistent design for what the coordinate system factory can create. This can be addressed by cleaning up the architecture via the use of interfaces and therefore create a usable library that can be easily shared.25 The existing coordinate system API as written is not very convenient to use as a library with 3rd party applications or even with !MapGuide. It also has an inconsistent design for what the coordinate system factory can create. This can be addressed by cleaning up the architecture via the use of interfaces and therefore create a usable library that can be easily shared. 26 26 27 27 == Proposed Solution == … … 29 29 The existing coordinate system API architecture will be cleaned up to use interfaces instead of wrapper classes. The coordinate system factory will be updated to create all coordinate system objects (coordinate systems, transforms and measures) instead of the mixture of having to use the factory for some stuff but not all. 30 30 31 New factory Method for creating a coordinate system transform object:32 31 New coordinate system factory method for creating a coordinate system transform object: 32 {{{ 33 33 MgCoordinateSystemTransform* GetTransform(MgCoordinateSystem* pSource, MgCoordinateSystem* pTarget) 34 34 }}} 35 35 Measure will be accessed directly from an existing coordinate system object: 36 {{{ 36 37 MgCoordinateSystemMeasure* GetMeasure() 38 }}} 37 39 38 40 == Implications == 39 41 40 42 All of the existing coordinate system APIs will remain and be backwards compatible with only the following 2 exceptions: 41 42 MgCoordinateSystemTransform 43 {{{ 44 MgCoordinateSystemTransform constructor will be removed. 43 45 MgCoordinateSystemMeasure constructor will be removed. 44 46 }}} 45 47 The above 2 objects will instead be created via the updated coordinate system factory. 46 48