Web lists-archives.com

Bug#857282: ITP: golang-github-golang-geo -- S2 geometry library in Go

Package: wnpp
Severity: wishlist
Owner: Michael Stapelberg <stapelberg@xxxxxxxxxx>

* Package name    : golang-github-golang-geo
  Version         : 0.0~git20170112.0.f819552-1
  Upstream Author : Google Inc.
* URL             : https://github.com/golang/geo
* License         : Apache-2.0
  Programming Lang: Go
  Description     : S2 geometry library in Go

 S2 is a library for manipulating geometric shapes. Unlike many geometry
 libraries, S2 is primarily designed to work with spherical geometry, i.e.,
 shapes drawn on a sphere rather than on a planar 2D map. (In fact, the name S2
 is derived from the mathematical notation for the unit sphere.) This makes it
 especially suitable for working with geographic data.
 The library consists of:
 * Basic representations of angles, intervals, latitude-longitude points, unit
   3D vectors, and conversions among them.
 * Various shapes over the unit sphere, such as spherical caps ("discs"),
   latitude-longitude rectangles, polylines, and polygons. These are
   collectively known as "regions".
 * Support for spatial indexing of collections of geometry, and algorithms for
   testing containment, finding nearby objects, finding intersections, etc.
 * A hierarchical decomposition of the sphere into regions called "cells". The
   hierarchy starts with the six faces of a projected cube and recursively
   subdivides them in a quadtree-like fashion.
 * The ability to approximate arbitrary regions as a collection of cells. This
   is useful for building inverted indexes that allow queries over arbitrarily
   shaped regions.  The implementations attempt to be precise both in terms of
   mathematical definitions (e.g. whether regions include their boundaries,
   representations of empty and full regions) and numerical accuracy (e.g.
   avoiding cancellation error).
 Note that the intent of this library is to represent geometry as a
 mathematical abstraction. For example, although the unit sphere is
 obviously a useful approximation for the Earth's surface, functions that
 are specifically related to geography are not part of the core library
 (e.g. easting/northing conversions, ellipsoid approximations, geodetic
 vs. geocentric coordinates, etc).

github.com/golang/geo is a dependency of cloud.google.com/go, which is a
dependency of upspin.