TODO 3.26 KB
Newer Older
Paul Ramsey's avatar
Paul Ramsey committed
1
Updated 2008/11/12
No Body's avatar
No Body committed
2

Paul Ramsey's avatar
Paul Ramsey committed
3
== Simple Projects ==
Paul Ramsey's avatar
Paul Ramsey committed
4

Paul Ramsey's avatar
Paul Ramsey committed
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
* ST_IsMeasured(geometry)
  TRUE or FALSE depending on existence of M
* ST_LocateAlong(reference geometry, measure float)
* ST_LocateBetween(reference geometry, start float, end float)
* ST_IsValidReason(geometry)
  For invalid geometries return the GEOS reason
* ST_CleanGeometry(geometry)
  Attempt to make invalid geometry valid
* ST_SplitGeometry(polygon, line) returns components of polygon
* ST_SplitGeometry(lineA, lineB) returns components of lineA
* ST_SplitGeometry(line, point) returns components of line 
* ST_Hausdorf(g1 geometry, g2 geometry) returns double.  
  Need to get def'n from JTS.
* ST_AverageDistance(g1 geometry, g2 geometry, nsamples integer) returns double
  Sum of minimum distances at regular intervals up two geometries, 
  divided by the number of samples.  
* ST_MaxDistance(g1 geometry, g2 geometry) returns double.  
  What is the maximum distance between these two geometries.
* ST_GeomFromKML(string) returns geometry. Ingests KML geometry parts only.
* ST_GeomFromGML(string) returns geometry. Ingests GML geometry parts only.
* ST_GeomFromGeoJSON(string) returns geometry. Ingests JSON geometry parts only.
* ST_LatitudeFromText(string) returns float, 
  LongitudeFromText(string) returns float 
  for things like 132W 23' 23", or 45N 23.41232', or 123.14123W, etc, etc, etc.
* ST_AsLatLonText(<point>, [formatstring]) returns string.  
  Format string could use DD DD.DD MM MM.MM SS SSSS.SSS style 
  tokens and allow anything else (E, W, ", ', degree sign) 
  to be interleaved within.
33

34

Paul Ramsey's avatar
Paul Ramsey committed
35
== Larger projects ==
36

Paul Ramsey's avatar
Paul Ramsey committed
37
-- Complete Curve support --
38

Paul Ramsey's avatar
Paul Ramsey committed
39 40 41
The LWGEOM construct does not have quite enough space to hold all the 
typology variants of curves. And it certainly doesn't have enough space
for encoding the line interpolation type.
42

Paul Ramsey's avatar
Paul Ramsey committed
43 44 45
Complete curve support would require re-working all the way back into
GEOS to support non-linear interpolations in all GEOS calculations,
and may never get done.
46

Paul Ramsey's avatar
Paul Ramsey committed
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
Intermediate curve support requires handling all curve types and stroking
them into linear interpolations for hand-off to GEOS functions. Inexact
but providing some utility.

Current curve support does include indexing and in/out functions but needs
much better documentation, particularly about the valid WKT and WKB forms.

-- Geodetic support --

A new "geography" type which is indexed in cartesian 3-space, possibly
using direction cosines as the ordinates, and supports some basic functions,
most importantly, distance on all types, area on all types and an 
intersects predicate.  Casts back to "geometry" could allow use with
standard functionality.

-- Topology --

Expand on the existing topology experiment, in particular buiding topologies
from existing POLYGON and MULTIPOLYGON "coverages" (simple feature collections
that have an expectation of no overlaps or gaps).

-- GEOMETRY_COLUMNS --

Add the maintenance of GEOMETRY_COLUMNS to the "ANALYZE" operation, so that
an ANALYZE automatically removes orphaned rows from GEOMETRY_COLUMNS and
adds entries for new rows.

-- Estimated Extent --

Fast extent estimation based on reading the head of the R-Tree.

-- Nearest Neighbor --

Fast nearest neighbor searching based on traversing the R-Tree.
See,
  http://citeseer.ist.psu.edu/roussopoulos95nearest.html
  http://citeseer.ist.psu.edu/91356.html
84