Changes between Version 4 and Version 5 of RFC8


Ignore:
Timestamp:
May 16, 2019, 11:44:19 AM (5 years ago)
Author:
mdavis
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RFC8

    v4 v5  
    1616 * It imposes the cost of a Z ordinate even if not required by the client
    1717 * (related) It is necessary to construct a full Geometry object just to pass a simple Point (e.g. for Point0In-Polygon)
    18  * (related) Geometry objects for Point and MultiPoint are very inefficient due to Point overhead
     18 * (related) Geometry objects for Point and Multi Point are very memory inefficient due to Point overhead
    1919
    2020The API also has some functional limitations:
     
    2525 * Allow using external coordinate list structures with no copying (except as needed by GEOS algorithms, e.g. removing repeated points)
    2626 * Prevent mutating of external coordinate structures
    27  * Support XY, XYM, XYZ, XYZM efficiently
     27 * Support XY, XYM, XYZ, XYZM
     28   * Coord Seq will need to know dimension of coordinates
     29 * Support efficient input of Point data
     30 * Optimized storage of Point and Multi Point data
     31
     32=== Ideas
     33
     34**Memory-based Coordinate Sequence implementation**
     35 * Class which contains pointer to memory block of coordinates, length, dimension
     36 * Coordinate Sequence becomes a slimmed-down interface with accessors
     37 * Will still provide setters, but use const to prevent unwanted modification
     38 * How will coordinates be accessed? 
     39   * By copying into stack-allocated object?  This would allow using a Coordinate with XYZM
     40   * By getX, getY and optional getZ, getM?  This requires rewriting some GEOS code to avoid copying coordinates
     41
     42**Templates**
     43 * problem is that templates would pervade entire code base
     44 * does not allow dynamic adapting to external structures
     45 
     46== Tasks
     47
     48 1. Remove extraneous operations from CoordinateSequence (e.g. removeRepeatedPoints)
     49 1. Create a MemoryBasedCoordinateSequence (better name?) which allows access to external blocks of memory
     50 1. Review how Coordinates are accessed - is there a better way?
     51 1. Review how this can provide XYZM capability?