Changes between Version 1 and Version 2 of MapGuideRfc35


Ignore:
Timestamp:
Sep 12, 2007, 8:51:29 AM (17 years ago)
Author:
brucedechant
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc35

    v1 v2  
    2323== Motivation ==
    2424
    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.
     25The 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.
    2626
    2727== Proposed Solution ==
     
    2929The 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.
    3030
    31 New factory Method for creating a coordinate system transform object:
    32 
     31New coordinate system factory method for creating a coordinate system transform object:
     32{{{
    3333MgCoordinateSystemTransform* GetTransform(MgCoordinateSystem* pSource, MgCoordinateSystem* pTarget)
    34 
     34}}}
    3535Measure will be accessed directly from an existing coordinate system object:
     36{{{
    3637MgCoordinateSystemMeasure* GetMeasure()
     38}}}
    3739
    3840== Implications ==
    3941
    4042All of the existing coordinate system APIs will remain and be backwards compatible with only the following 2 exceptions:
    41 
    42 MgCoordinateSystemTransform  constructor will be removed.
     43{{{
     44MgCoordinateSystemTransform constructor will be removed.
    4345MgCoordinateSystemMeasure constructor will be removed.
    44 
     46}}}
    4547The above 2 objects will instead be created via the updated coordinate system factory.
    4648