mysql - 为什么 MySQL 不接受 GEOMETRY 列的这个 WKT 值?
问题描述
我正在尝试将这个简单的 WKT 多点值转换为存储在我的 MySQL 数据库的 GEOMETRY 列中
select ST_GeomFromText('MULTIPOINT ((-72.92788350000001 41.308274), (-72.996283 41.355198))');
它返回空值。我不知道为什么 - WKT 本身似乎是有效的,例如,如果您在https://arthur-e.github.io/Wicket/sandbox-gmaps3.html查看它
那么 MySQL 方面的限制是什么,我该如何解决呢?谢谢。
如果重要的话,这是在 MySQL 5.6 上。
解决方案
似乎 5.6 中的 MySQL 版本使用了另一种 WKT 格式。
在 MySQL 5.6 中,您需要使用MULTIPOINT (-72.92788350000001 41.308274, -72.996283 41.355198)
offMULTIPOINT ((-72.92788350000001 41.308274), (-72.996283 41.355198))
MySQL 版本 5.6.40
参见演示
https://www.db-fiddle.com/f/mddtN7MBTwPmKz1UoDMqVA/8
MySQL 版本 8.0.11
来验证结果也很好,MYSQL 5.6 WKT 格式也适用于较新的 MySQL 版本。
见演示
https://www.db-fiddle.com/f/mddtN7MBTwPmKz1UoDMqVA/11
同样MULTIPOINT (-72.92788350000001 41.308274, -72.996283 41.355198)
,两者都在https://arthur-e.github.io/Wicket/sandbox-gmaps3.htmlMULTIPOINT ((-72.92788350000001 41.308274), (-72.996283 41.355198))
上给出了相同的观点
推荐阅读
- ruby-on-rails - Rails Admin 动态字段
- spring-mvc - 使用“forward:/”时如何设置参数
- github - 在 shinyapp.io 上部署闪亮的应用程序,并在私人组织仓库中使用包
- python - 熊猫用日期填充列
- python - ModuleNotFoundError:没有名为“user_agent”的模块
- angularjs - NPM 适用于命令行,但不适用于 Jenkins
- r - 修改重叠 geom_boxplot 宽度以跨越用于计算的整个 x 范围
- hl7-fhir - 提取单个 FHIR 资源的功能
- c# - 即时窗口输出与运行时输出之间的不一致
- dart - Dart 代码在我的 Flutter 应用程序中的行为有所不同。列表
' 不是类型 'List 的子类型