Our organization spatial-go
is officially established! The first open source project Geoos
(Using Golang
) provides spatial data and geometric algorithms.
All comments and suggestions are welcome!
http:https://www.spatial-go.com
Algorithm
is the definition of spatial operation, which is outside exposing.strategy.go
defines the implementation of the spatial computing based algorithm.
How to use Geoos
:
Example: Calculating area
via Geoos
package main
import (
"encoding/json"
"fmt"
"github.com/spatial-go/geoos"
"github.com/spatial-go/geoos/encoding/wkt"
"github.com/spatial-go/geoos/geojson"
"github.com/spatial-go/geoos/planar"
)
func main() {
// First, choose the default algorithm.
strategy := planar.NormalStrategy()
// Secondly, manufacturing test data and convert it to geometry
const polygon = `POLYGON((-1 -1, 1 -1, 1 1, -1 1, -1 -1))`
geometry, _ := wkt.UnmarshalString(polygon)
// Last, call the Area () method and get result.
area, e := strategy.Area(geometry)
if e != nil {
fmt.Printf(e.Error())
}
fmt.Printf("%f", area)
// get result 4.0
rawJSON := []byte(`
{ "type": "FeatureCollection",
"features": [
{ "type": "Feature",
"geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
"properties": {"prop0": "value0"}
}
]
}`)
fc := geojson.NewFeatureCollection()
_ = json.Unmarshal(rawJSON, &fc)
println("%p", fc)
// Geometry will be unmarshalled into the correct geo.Geometry type.
point := fc.Features[0].Geometry.(geoos.Point)
println("%p", &point)
}
We will also uphold the concept of "openness, co-creation, and win-win" to contribute in the field of space computing.
Welcome to join us !please report an issue
Email Address: [email protected]
Geoos
is licensed under the:
LGPL-2.1