Changes between Version 7 and Version 8 of MapGuideRfc117
- Timestamp:
- 08/19/11 00:19:12 (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MapGuideRfc117
v7 v8 10 10 ||RFC Template Version||(1.0)|| 11 11 ||Submission Date||20 June 2011|| 12 ||Last Modified|| 20 June2011||12 ||Last Modified||19 August 2011|| 13 13 ||Author||Jackie Ng|| 14 14 ||RFC Status||ready for review|| 15 15 ||Implementation Status||pending|| 16 ||Proposed Milestone||2. 3||16 ||Proposed Milestone||2.4|| 17 17 ||Assigned PSC guide(s)||(when determined)|| 18 18 ||'''Voting History'''||(vote date)|| … … 41 41 The MapGuide Platform API itself is already modular and abstract enough to have an implementation in MapGuide/AIMS and another implementation in AutoCAD Map3D. What would be really nice is to take the concepts from that presentation to its logical conclusion, into a separate '''desktop-based''' implementation of the MapGuide Platform API 42 42 43 Having a desktop-based MapGuide API opens up a whole new class of mapping applications that can use the same data access, rendering and stylization available in MapGuide, but without needing connectivity to a local or remove MapGuide Server as all the functionality is now self contained. This makes for a suitable foundation for mobile and remote field mapping applications. 44 43 45 == Proposed Solution == 44 46 … … 65 67 MgFeatureService for the desktop is a thin wrapper around FDO. Each service API maps to its corresponding FDO command. 66 68 67 MgResourceService for the desktop wraps a pre-defined directory on the native filesystem. Package loading is also implemented allowing for spatial data portability between a MapGuide Server and an application using the Desktop Platform API. 69 MgResourceService for the desktop wraps a pre-defined directory on the native filesystem. Package loading is also implemented allowing for spatial data portability between a MapGuide Server and an application using the Desktop Platform API. Because it wraps the underlying filesystem and resource ids are mapped to file paths, resource ids are '''no longer case-sensitive''' for windows where file paths are not case-sensitive. 68 70 69 71 MgMapBase, MgLayerBase and MgSelectionBase are near 1:1 copies of their MapGuide Server counterparts. Because the desktop implementation does not have to address http statelessness like the MapGuide Web API, the Open() and Save() and Create() methods of MgMapBase are not required and have been removed from the desktop implementation. … … 71 73 MgFeatureReader, MgDataReader and MgSqlDataReader wraps their respective FDO reader interfaces. 72 74 73 This desktop implementation fulfil s the data access (MgFeatureService) and rendering/stylization (MgRenderingService) requirements needed to build a functional desktop mapping application.75 This desktop implementation fulfills the data access (MgFeatureService) and rendering/stylization (MgRenderingService) requirements needed to build a functional desktop mapping application. 74 76 75 77 This desktop implementation also includes a functional .net wrapper API, created via the existing SWIG infrastructure already present in the MapGuide source tree. 76 78 77 Due to the tight dependency on server code, certain object caching and pooling mechanisms areomitted from the desktop implementation.79 Due to the tight dependency on server code, certain object caching and pooling mechanisms have been omitted from the desktop implementation. 78 80 79 81 As already mentioned, the desktop implementation does not have to address http statelessness like the MapGuide Web API, as such certain concepts no longer apply when moving to the desktop: 80 82 81 83 * Sessions 82 * Map names84 * Using the session repository to maintain runtime map state and selection 83 85 * Authentication 84 86 * Resource Security … … 149 151 * GetSchemaMapping 150 152 153 The following resource types are not utilised under the Desktop API: 154 155 * Web Layout 156 * Application Definition 157 * Print Layout 158 159 The following functionality present already in MapGuide/AIMS, is not implemented or supported yet under the Desktop API: 160 161 * Feature Joins (SelectFeatures currently blindly assumes a non-extended feature class) 162 * Extended Feature Classes (these are currently skipped in a DescribeSchema operation) 163 151 164 In terms of compatibility, existing MapGuide application code is compatible at the source code level provided the code is targeting the subset of the MapGuide API that is supported and implemented by this desktop API. 152 165