使用 Gorm 插入和选择 PostGIS 几何
在 Golang 中插入和检索几何数据类型可能具有挑战性,尤其是在使用 Gorm 等库时。然而,通过利用 PostGIS 中的 ST_AsBinary() 和 ST_GeomFromWKB() 函数,我们可以有效地与几何列进行交互。
使用 orb.Point 插入
插入球体将点数据放入几何列中,我们使用 EWKBGeomPoint 的 Value() 方法将点包装在 ST_GeomFromWKB() 函数中。我们的自定义结构体 EWKBGeomPoint 中的 Value() 方法在将值返回给 Gorm 进行插入之前执行转换。
使用二进制数据进行查询
查询时,Gorm 自动调用我们的自定义结构 EWKBGeomPoint 的 Scan() 方法。在此方法中,我们从数据库接收二进制数据,并使用 ewkb 库中的 Unmarshal 函数将其转换为 orb.Point。
触发器或规则自动化
为了处理数据进出几何列的自动转换,我们可以自定义数据库迁移过程。我们首先使用标准 SQL 语法创建包含几何列的表。创建表后,我们使用 gormigrate 创建 Gorm 模型和其他列。
这种方法确保插入数据库的所有 orb.Point 都正确转换为 WKB 格式,并且从数据库检索所有二进制数据已正确转换为 orb.Point 格式。
以上是我们如何使用 Gorm 和 PostGIS 与 Golang 中的几何列高效交互?的详细内容。更多信息请关注PHP中文网其他相关文章!