Description
Package geom implements efficient geometry types.
See https://godoc.org/github.com/twpayne/go-geom.
Example:
go-geom alternatives and similar packages
Based on the "GIS" category.
Alternatively, view go-geom alternatives based on common mentions on social networks and blogs.
-
polyline
Package polyline implements a Google Maps Encoding Polyline encoder and decoder. -
go-kml
Package kml provides convenience methods for creating and writing KML documents. -
UTM
Bidirectional UTM-WGS84 converter for golang :earth_africa: :globe_with_meridians: -
go-sypexgeo
SypexGeo library for Go (provides access data from SypexGeo IP database files) -
go-gpx
Package gpx provides convenience types for reading and writing GPX files.
Static code analysis for 29 languages.
Do you think we are missing an alternative of go-geom or a related project?
Popular Comparisons
README
go-geom
Package geom
implements efficient geometry types for geospatial applications.
Key features
- OpenGeo Consortium-style geometries.
- Support for 2D and 3D geometries, measures (time and/or distance), and unlimited extra dimensions.
- Encoding and decoding of common geometry formats (GeoJSON, KML, WKB, and
others) including
sql.Scanner
anddriver.Value
interface implementations for easy database integration. - 2D and 3D topology functions.
- Efficient, cache-friendly [internal representation](INTERNALS.md).
- Optional protection against malicious or malformed inputs.
Examples
Detailed features
Geometry types
Encoding and decoding
Geometry functions
Protection against malicious or malformed inputs
The WKB and EWKB formats encode geometry sizes, and memory is allocated for
those geometries. If the input is malicious or malformed, the memory allocation
can be very large, leading to a memory starvation denial-of-service attack
against the server. For example, a client might send a MultiPoint
with header
indicating that it contains 232-1 points. This will result in the server
reading that geometry to allocate 2 × sizeof(float64)
× (232-1) = 64GB of
memory to store those points. By default, malicious or malformed input
protection is disabled, but can be enabled by setting positive values for
wkbcommon.MaxGeometryElements
.
Related libraries
- github.com/twpayne/go-gpx GPX encoding and decoding
- github.com/twpayne/go-kml KML encoding
- github.com/twpayne/go-polyline Google Maps Polyline encoding and decoding
- github.com/twpayne/go-vali IGC validation
License
BSD-2-Clause
*Note that all licence references and agreements mentioned in the go-geom README section above
are relevant to that project's source code only.