精通 MySQL (MariaDB) 几何列类型

问题描述 投票:0回答:1

我需要从存储为

POINT
数据类型的 MariaDB 数据库中检索纬度/经度,但无法为此找到解决方案。

我尝试将值读取为字符串:

@Field(key: "location")
var location: String?

但它不起作用(难怪)。我遇到的错误是:

无效字段:位置类型:可选错误:typeMismatch(Swift.Optional, Swift.DecodingError.Context(codingPath: [], debugDescription: "Could not convert MySQL data to Optional: ", underlyingError: nil))

有人可以与我分享任何示例/转换逻辑如何处理这个值吗?

非常感谢

swift vapor vapor-fluent
1个回答
0
投票

我认为目前 fluent/mysql 不支持 POINT。在不修改流畅源的情况下,您可以使用原始查询将 x 和 y 值提取为浮点数或将整个 POINT 值提取为十六进制字符串并进行后处理。或者,添加您自己的数据类型、解码器和编码器看起来并不太麻烦。

© www.soinside.com 2019 - 2024. All rights reserved.