gpt4 book ai didi

mysql - 无法将 WKB 插入 MySQL 中的 POINT 列

转载 作者:行者123 更新时间:2023-11-29 18:33:48 26 4
gpt4 key购买 nike

我正在构建一个 Node.js 应用程序来管理我所在区域的兴趣点。我通过使用 wkx 将经纬度坐标转换到 WKB 缓冲区中来插入 POI,然后将其插入到 MySQL 中的 POINT 列中。该查询是使用 Knex.js 构建的。查询如下所示:

INSERT INTO `places` (`name`, `coordinate`)
VALUES ('Null Island', X'00000000010100000000000000000000000000000000000000')

它抛出无法从发送到 GEOMETRY 字段的数据中获取几何对象

我修改了它,所以它变成了这样:

INSERT INTO `places` (`name`, `coordinate`)
VALUES ('Null Island', UNHEX('00000000010100000000000000000000000000000000000000'))

但是还是不行。我最终仅使用 ST_GEOMFROMTEXT(0 0) 使其正常工作。即使我像这样搞砸它它也能工作:

INSERT INTO `places` (`name`, `coordinate`)
VALUES ('Null Island', UNHEX(HEX(ST_GEOMFROMTEXT('POINT(0 0)')))

怎么了?我怎样才能让它直接从缓冲区工作?我怀疑我的问题与 this one 类似.

最佳答案

来自MySQL Reference Manual on Supported Spatial Data Formats :

Internally, MySQL stores geometry values in a format that is not identical to either WKT or WKB format. (Internal format is like WKB but with an initial 4 bytes to indicate the SRID.)

因此,插入 WKB 值(例如由 wkx 生成的值)不能直接完成。相反,请使用 ST_GEOMFROMWKB(),如 here. 中所述。

关于mysql - 无法将 WKB 插入 MySQL 中的 POINT 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45480503/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com