Popularity
6.7
Growing
Activity
4.2
-
466
10
57

Description

Package geom implements efficient geometry types.

See https://godoc.org/github.com/twpayne/go-geom.

Example:

Programming language: Go
License: BSD 2-clause "Simplified" License
Tags: GIS     KML     Geospatial     WKB    
Latest version: v1.3.6

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.

Do you think we are missing an alternative of go-geom or a related project?

Add another 'GIS' Package

README

go-geom

PkgGoDev Go Report Card Coverage Status

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 and driver.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

  • XY 2D geometry functions
  • XYZ 3D 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.

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.