simplefeatures
simplefeatures copied to clipboard
Simple Features is a pure Go Implementation of the OpenGIS Simple Feature Access Specification
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...
Linear Referencing is so useful ``` import ( "github.com/peterstace/simplefeatures/geom" ) const DISTMIN = 0.000001 type Segment struct { Start, End geom.XY } func (s Segment) Length() float64 { return s.End.Sub(s.Start).Length()...
- 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.
as mentioned in https://github.com/peterstace/simplefeatures/pull/421, this PR adds the benchmarking script used to generate the diffs shown on that PR description. I'm opening this as a DRAFT since I'm not happy...