如以下函数所示,我正在尝试将行插入building表中。一切正常,只是坐标不是保存为普通文本,而是保存为 WKB(如屏幕截图和示例所示)。func (db Database) SaveBuildings(buildings overpass.Result) error { tx, err := db.pool.Begin(context.Background()) if err != nil { return err } defer tx.Rollback(context.Background()) for _, building := range buildings.Nodes { _, err = tx.Exec(context.Background(), `INSERT INTO building (coordinate, type, variation) VALUES(ST_SetSRID(ST_MakePoint($1, $2),4326), $3, $4)`, building.Lon, building.Lat, "industrial", "brick") } if err != nil { return err } err = tx.Commit(context.Background()) return err}Building表格样本uuid |coordinate |type |variation|------------------------------------|--------------------------------------------------|----------|---------|dff2f9a3-03f1-477c-8b3e-9c6708d97519|0101000020E610000028637C98BDE63B4092301D84CAE04740|industrial|brick |7b6b619a-8c0f-4a3d-b098-d878a2b1d152|0101000020E6100000EFE2FDB8FDE43B4085AC133C2AE04740|industrial|brick |efd68a88-a349-4f1b-9406-23920031701f|0101000020E6100000D7C3F24295E53B40A538FD8F02E04740|industrial|brick |3b9bfc69-9dbc-42f5-a80d-615b972da3a2|0101000020E610000085E39E5335EA3B40B1FD648C0FE14740|industrial|brick |19e798d9-5ce7-47e4-aea0-0eb039805269|0101000020E6100000CD48731A58E73B40A76384A6DBDF4740|industrial|brick |c99ab27c-a205-460c-8371-8306895fcd8b|0101000020E610000091FF136DD8E63B40E5492DEF05E04740|industrial|brick |f9aabf00-c3aa-4a45-8c15-5b538390b807|0101000020E6100000E2395B4068E53B403A98A839D4E04740|industrial|brick |a866e708-6438-4524-b257-e3f7f84b7027|0101000020E610000077B6ECB545E63B400B067C235FE04740|industrial|brick |
1 回答

HUH函数
TA贡献1836条经验 获得超4个赞
WKB
只是 Postgres 处理点的表示。其实很好!想象一下,您将所有这些点存储为文本,那么您将如何对它们进行计算,例如聚类或计算它们之间的距离?
要以您想要的方式获取它们的值,只需使用
SELECT uuid, ST_ASTEXT(coordinate) as coordinate_wkt FROM building
- 1 回答
- 0 关注
- 162 浏览
添加回答
举报
0/150
提交
取消