我正在使用Point数据类型在Postgres DB中存储坐标。如何将Point数据类型映射到Go lang数据类型?我找不到相同的任何文档。
答案 0 :(得分:0)
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()