cridenour / go-postgis

PostGIS support for Go. Works with any Postgres driver.
MIT License
108 stars 26 forks source link

go-postgis

PostGIS support for Go. Works with any Postgres driver.

Example

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!")
    }
}