Changes between Version 4 and Version 5 of FDORfc64
- Timestamp:
- 09/24/12 10:26:12 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FDORfc64
v4 v5 9 9 ||RFC Template Version||(1.0)|| 10 10 ||Submission Date|| September 25, 2012 || 11 ||Last Modified|| Dan Stoica June 13, 2012 ||11 ||Last Modified|| Dan Stoica September 25, 2012 || 12 12 ||Author||Dan Stoica|| 13 13 ||RFC Status||Not ready for review|| … … 23 23 == Overview == 24 24 25 This RFC is for enhanc e secondary filter performance inFDO Spatial project. It leverages the in-memory Spatial Index implemented by FDO RFC 63.25 This RFC is for enhancing the secondary filter performance in the FDO Spatial project. It leverages the in-memory Spatial Index implemented by FDO RFC 63. 26 26 27 27 == Motivation == … … 40 40 The solution is to create a Spatial Index for the filter polygon where each segment of the polygon has an entry. This way all the steps 1-3 will benefit by limiting the segments to check to those in the area of interest. For example, the point-in-polygon test will run a spatial query using the X-ray bounding box as search area. Therefore, instead of traversing all the segments, only a few will be processed for X-ray intersections. 41 41 42 The proposal is to add a new FdoSpatialUtility::Evaluate() method which takes a Spatial Index parameter. The reason the spatial index is owned by the caller is for performance reasons: the same geometry filter is used multiple times for each candidate geometry, and creating the spatial index each time is not optimal.42 The proposal is to add a new public FdoSpatialUtility::Evaluate() method which takes a Spatial Index parameter. The reason the spatial index is owned by the caller is for performance reasons: the same geometry filter is used multiple times for each candidate geometry, and creating the spatial index each time is not optimal. 43 43 44 44 … … 68 68 /// \return 69 69 /// Returns the evaluation of spatial operation. 70 70 71 FDO_SPATIAL_API static bool Evaluate(FdoIGeometry* g1, FdoSpatialOperations op, FdoIGeometry* g2, FdoSpatialIndex* si2, double toleranceXY); 71 72 … … 104 105 } 105 106 106 // Assume the spatial operation is FdoSpatialOperations_Intersects 107 // Assume the spatial operation is FdoSpatialOperations_Intersects. 107 108 // For every candidate geometry evaluate against the filter geometry... 108 109 … … 111 112 bool eval = FdoSpatialUtility::Evaluate(geomLeft, FdoSpatialOperations_Intersects, geomRight, si, 0.001); 112 113 113 // Do something with the result 114 // Do something with the result and continue with a the next candidate... 114 115 115 116 == Managed FDO API ==