0

我正在使用 Point 数据类型在 Postgres DB 中存储坐标。如何将 Point 数据类型映射到 Go lang 数据类型?我没有找到任何相同的文档。

4

1 回答 1

2

go-pg 没有对 Point 类型的原生支持(从 PostGIS 开始)。我为超越它所做的(可能不是最好的解决方案,但我确实设法让它工作)是在我的模型上放置单独的纬度和经度字段,并在查询本身上使用(对于经度ColumnExpr)获取单独的值ST_X)和ST_Y(对于纬度,不要忘记)。

模型:

type MyModel struct {
    ID              int64
    Name            string
    LocationLat     float64
    LocationLon     float64
}

询问:

err := db.Model(&myModel).
        Column("id", "name").
        ColumnExpr("ST_X(location) AS location_lon").
        ColumnExpr("ST_Y(location) AS location_lat").
        Where("id = ?", id).
        Select()
于 2019-09-05T08:18:28.040 回答