PostGIS support for Go. Works with any Postgres driver.
package main
import (
"database/sql"
"fmt"
"github.com/cridenour/go-postgis"
_ "github.com/lib/pq"
)
func main() {
db, _ := sql.Open("postgres", "database=pqgotest sslmode=disable")
point := postgis.PointS{
SRID: 4326,
X: -84.5014,
Y: 39.1064,
}
var newPoint postgis.PointS
// Ensure we have PostGIS on the table
db.Exec("CREATE EXTENSION IF NOT EXISTS postgis")
// Demonstrate both driver.Valuer and sql.Scanner support
db.QueryRow("SELECT GeomFromEWKB($1);", point).Scan(&newPoint)
if point == newPoint {
fmt.Println("Point returned equal from PostGIS!")
}
}