Peter Stace
Peter Stace
The benchmarks have dependencies on a particular version of GEOS. Rather than requiring developers to install that version of GEOS, the benchmarks should be dockerized instead.
https://postgis.net/docs/ST_ConcaveHull.html Concave Hull is available in GEOS, however it's not available in the C wrapper (it's only available via C++). We may have to write our own C wrapper.
A LERP function is defined here: https://github.com/peterstace/simplefeatures/blob/master/geom/alg_linear_interpolation.go#L55 ``` func lerp(a, b, ratio float64) float64 { return a + ratio*(b-a) } ``` I ran into the following article, which shares some...
- Add new methods `RemoveRepeatedPoints() T` to `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, `GeometryCollection` and `Geometry`. `T` should be the type that the method is implemented on. - We don't need...
`MakeValid` is an operation that exists both in PostGIS and GEOS. It basically accepts an invalid geometry as input, and then "makes it valid" by returning a different geometry that...
Currently, the error messages for invalid polygons aren't great. E.g. `polygon ring not simple`. Ideally we should give the coordinates _when_ the ring is self intersecting. We should also examine...
We have regular simplify, but not the topological preserve variant. It may come in handy.
In `type_geometry.go`, there are lots of places where we perform a switch statement on the geometry type, grab out the concrete geometry, and then perform some action on it. _Usually_,...
E.g. the following WKT parses as valid: `GEOMETRYCOLLECTION M(POINT Z(1 2 0))`. But it's not internally consistent with respect to coordinate type (Z vs M). We should give an error...