Documentation ¶
Overview ¶
Package geo computes properties on geometries assuming they are lon/lat data.
Index ¶
- func Area(g orb.Geometry) float64
- func Bearing(from, to orb.Point) float64
- func BoundHeight(b orb.Bound) float64
- func BoundPad(b orb.Bound, meters float64) orb.Bound
- func BoundWidth(b orb.Bound) float64
- func Distance(p1, p2 orb.Point) float64
- func DistanceHaversine(p1, p2 orb.Point) float64
- func Length(g orb.Geometry) float64
- func LengthHaversign(g orb.Geometry) float64
- func Midpoint(p, p2 orb.Point) orb.Point
- func NewBoundAroundPoint(center orb.Point, distance float64) orb.Bound
- func SignedArea(r orb.Ring) float64
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Area ¶
Area returns the area of the geometry on the earth.
Example ¶
package main import ( "fmt" "github.com/paulmach/orb" "github.com/paulmach/orb/geo" ) func main() { poly := orb.Polygon{ { {-122.4163816, 37.7792782}, {-122.4162786, 37.7787626}, {-122.4151027, 37.7789118}, {-122.4152143, 37.7794274}, {-122.4163816, 37.7792782}, }, } a := geo.Area(poly) fmt.Printf("%f m^2", a) }
Output: 6073.368008 m^2
func Bearing ¶
Bearing computes the direction one must start traveling on earth to be heading from, to the given points.
func BoundHeight ¶
BoundHeight returns the approximate height in meters.
func BoundWidth ¶
BoundWidth returns the approximate width in meters of the center of the bound.
func Distance ¶
Distance returns the distance between two points on the earth.
Example ¶
package main import ( "fmt" "github.com/paulmach/orb" "github.com/paulmach/orb/geo" ) func main() { oakland := orb.Point{-122.270833, 37.804444} sf := orb.Point{-122.416667, 37.783333} d := geo.Distance(oakland, sf) fmt.Printf("%0.3f meters", d) }
Output: 13042.047 meters
func DistanceHaversine ¶
DistanceHaversine computes the distance on the earth using the more accurate haversine formula.
func Length ¶
Length returns the length of the boundary of the geometry using the geo distance function.
Example ¶
package main import ( "fmt" "github.com/paulmach/orb" "github.com/paulmach/orb/geo" ) func main() { poly := orb.Polygon{ { {-122.4163816, 37.7792782}, {-122.4162786, 37.7787626}, {-122.4151027, 37.7789118}, {-122.4152143, 37.7794274}, {-122.4163816, 37.7792782}, }, } l := geo.Length(poly) fmt.Printf("%0.0f meters", l) }
Output: 325 meters
func LengthHaversign ¶
LengthHaversign returns the length of the boundary of the geometry using the geo haversine formula
func Midpoint ¶
Midpoint returns the half-way point along a great circle path between the two points.
func NewBoundAroundPoint ¶
NewBoundAroundPoint creates a new bound given a center point, and a distance from the center point in meters.
func SignedArea ¶
SignedArea will return the signed area of the ring. Will return negative if the ring is in the clockwise direction. Will implicitly close the ring.
Types ¶
This section is empty.