diff --git a/README.md b/README.md index a17e795..521d882 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,59 @@ Package pgx-geos provides [PostGIS](https://postgis.net/) and [`github.com/jackc/pgx/v5`](https://pkg.go.dev/github.com/jackc/pgx/v5) via [`*github.com/twpayne/go-geos.Geom`](https://pkg.go.dev/github.com/twpayne/go-geos#Geom). +## Usage + +### Single connection + +```go +import ( + // ... + + "github.com/jackc/pgx/v5" + "github.com/twpayne/go-geos" + pgxgeos "github.com/twpayne/pgx-geos" +) + +// ... + + connectionStr := os.Getenv("DATABASE_URL") + conn, err := pgx.Connect(context.Background(), connectionStr) + if err != nil { + return err + } + if err := pgxgeos.Register(ctx, conn, geos.NewContext()); err != nil { + return err + } +``` + +### Connection pool + +```go +import ( + // ... + + "github.com/jackc/pgx/v5/pgxpool" +) + +// ... + + config, err := pgxpool.ParseConfig(connectionStr) + if err != nil { + return err + } + config.AfterConnect = func(ctx context.Context, conn *pgx.Conn) error { + if err := pgxgeos.Register(ctx, conn, geos.NewContext()); err != nil { + return err + } + return nil + } + + pool, err := pgxpool.NewWithConfig(context.Background(), config) + if err != nil { + return err + } +``` + ## License MIT \ No newline at end of file