Changes between Version 4 and Version 5 of FDORfc64


Ignore:
Timestamp:
Sep 24, 2012, 10:26:12 AM (12 years ago)
Author:
danstoica
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfc64

    v4 v5  
    99||RFC Template Version||(1.0)||
    1010||Submission Date|| September 25, 2012 ||
    11 ||Last Modified|| Dan Stoica June 13, 2012 ||
     11||Last Modified|| Dan Stoica September 25, 2012 ||
    1212||Author||Dan Stoica||
    1313||RFC Status||Not ready for review||
     
    2323== Overview ==
    2424
    25 This RFC is for enhance secondary filter performance in FDO Spatial project. It leverages the in-memory Spatial Index implemented by FDO RFC 63.
     25This 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.
    2626
    2727== Motivation ==
     
    4040The 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.
    4141
    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.
     42The 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.
    4343
    4444
     
    6868    /// \return
    6969    /// Returns the evaluation of spatial operation.
     70
    7071    FDO_SPATIAL_API static bool Evaluate(FdoIGeometry* g1, FdoSpatialOperations op, FdoIGeometry* g2, FdoSpatialIndex* si2, double toleranceXY);
    7172
     
    104105       }
    105106
    106        // Assume the spatial operation is FdoSpatialOperations_Intersects
     107       // Assume the spatial operation is FdoSpatialOperations_Intersects.
    107108       // For every candidate geometry evaluate against the filter geometry...
    108109
     
    111112       bool eval = FdoSpatialUtility::Evaluate(geomLeft, FdoSpatialOperations_Intersects, geomRight, si, 0.001);
    112113
    113        // Do something with the result
     114       // Do something with the result and continue with a the next candidate...
    114115
    115116== Managed FDO API ==