Changes between Version 4 and Version 5 of FDORfc63
- Timestamp:
- 05/17/12 13:40:27 (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FDORfc63
v4 v5 23 23 == Overview == 24 24 25 This RFC is for adding a in-memory Spatial Index toFDO Spatial project.25 This RFC is for adding an in-memory Spatial Index to the FDO Spatial project. 26 26 27 27 == Motivation == … … 45 45 /// \ingroup (enums) 46 46 /// \brief 47 /// FdoSpatialIndexMode is an enumeration of the types of the Spatial Index, 48 /// representing the granularity. 47 /// FdoSpatialIndexMode is an enumeration of the types of the Spatial Index 49 48 enum FdoSpatialIndexMode 50 49 { 51 /// Mode #1 - Regular Spatial Index: one entry in the rtreefor the entire geometry50 /// Mode #1 - Regular Spatial Index: one entry in the SI for the entire geometry 52 51 FdoSpatialIndex_ByGeometriesBoundingBox = 0, 53 52 54 /// Mode #2 - The geometries are broken into segments and each segment has an entry in the rtree.53 /// Mode #2 - The geometries are broken into segments and each segment has an entry in the SI. 55 54 /// The segment index is contiguous over parts and subparts. 56 55 FdoSpatialIndex_BySegmentsMultipleFeatures = 1, 57 56 58 57 /// Mode #3 - Just one geometry is allowed. The geometry is broken into segments 59 /// and each segment has an entry in the rtree. The part and subpart are encoded to allow58 /// and each segment has an entry in the SI. The part and subpart are encoded to allow 60 59 /// for sorting and fast processing. 61 60 FdoSpatialIndex_BySegmentsSingleFeature = 2 … … 108 107 /// 109 108 /// \remarks 110 /// Applies for Mode #2 and #3. The Feat id is encoded as follows:109 /// Applies for Mode #2 and #3. The FeatId is encoded as follows: 111 110 /// Mode #2: 112 111 /// 32 bits (0-31) - 1-based featId # 113 /// 32 bits (32-63) - vertex# (contiguous)112 /// 32 bits (32-63) - 1-based segment # (contiguous) 114 113 /// 115 114 /// Mode #3: 116 /// 115 /// 0 bits - featId # (will be ignored) 117 116 /// 16 bits (0-15) - part # (for multi-features) max. 65534 118 117 /// 16 bits (16-31) - subpart # (e.g. polygons with interior rings) max 65534 119 /// 32 bits (32-63) - vertex#118 /// 32 bits (32-63) - 1-based segment # 120 119 /// 121 120 /// \param featId … … 221 220 == Remarks == 222 221 223 The API proposes 3modes. This provides maximum flexibility for various scenarios.224 For mode #2 and #3 the client code has to implement a segment visitor in order to retrieve a segment from the geomtry. 225 226 The actual implementation will be the R-tree implementation found under Sqlite provider and developed by Traian Stanev.222 * The API proposes 3 usage modes. This provides maximum flexibility for various scenarios. 223 * Mode 1 implements a regular spatial index, very performant 224 * For mode 2 and 3 the client code has to implement a segment visitor in order to retrieve a segment from the geometry. 225 * The actual implementation will be the R-tree implementation found under Sqlite provider and developed by Traian Stanev. 227 226 228 227 == How to use this API == … … 289 288 == Managed FDO API == 290 289 291 The FDO Managed Interfaces will be updated i n a similar manner to reflect the proposed changes.290 The FDO Managed Interfaces will be updated if required in a similar manner to reflect the proposed changes. 292 291 293 292 294 293 == Test Plan == 295 294 296 * Enhance the unit tests and add roundtripping fidelity tests for !FdoInt16, !FdoInt32 and !FdoInt64 properties.297 295 * Add unit test to test the API in all modes and primary filtering with boundary conditions. 296 298 297 == !Funding/Resources == 299 298