首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在MySQL中插入WKB指向列

无法在MySQL中插入WKB指向列
EN

Stack Overflow用户
提问于 2017-08-03 09:42:42
回答 1查看 719关注 0票数 0

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

代码语言:javascript
复制
INSERT INTO `places` (`name`, `coordinate`)
    VALUES ('Null Island', X'00000000010100000000000000000000000000000000000000')

它抛出了Cannot get geometry object from data you send to the GEOMETRY field

我对它进行了修改,结果变成了这样:

代码语言:javascript
复制
INSERT INTO `places` (`name`, `coordinate`)
    VALUES ('Null Island', UNHEX('00000000010100000000000000000000000000000000000000'))

但还是没用。我最终只能通过使用ST_GEOMFROMTEXT(0 0)才能让它工作。即使我把它搞成这样,它也能工作:

代码语言:javascript
复制
INSERT INTO `places` (`name`, `coordinate`)
    VALUES ('Null Island', UNHEX(HEX(ST_GEOMFROMTEXT('POINT(0 0)')))

怎么了?如何使它直接从缓冲区工作?我怀疑我的问题与这一个相似。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-04 03:22:18

来自MySQL支持的空间数据格式参考手册

在内部,MySQL以与WKT或WKB格式不同的格式存储几何值。(内部格式类似于WKB,但有一个初始的4个字节来表示SRID。)

因此,不能直接插入WKB值(例如由wkx生成的值)。相反,使用ST_GEOMFROMWKB() (如描述的这里。 )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45480503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档