在 MySQL 中,我有一个包含大约 100 个表的数据库。
它们都包含一个名为'shape'的列,这是一个多边形类型的字段。
它包含的信息我认为(st_srid 返回 1,但它是错误的)是 SRID 31287。
我想将其转换为 SRID 4326,我该怎么做呢?
更新 这是一个非常古老的问题,有着非常古老的答案,最近提交了一个新答案,恕我直言,如果版本控制正确,则使用该方法。我没有将新答案标记为正确,因为这对在提问时给出正确答案的人不公平。但是,如果您使用的是版本 8,请按照 UncertaintyP 对这个问题的回答进行操作:https://stackoverflow.com/a/65314337/2973474
最佳答案
为找到解决此问题的迷失灵魂更新 MySQL 中的转换:
在版本 8 中,您现在有 ST_Transform
mysql> SET @p = ST_GeomFromText('POINT(52.381389 13.064444)', 4326);
mysql> SELECT ST_AsText(@p);
+----------------------------+
| ST_AsText(@p) |
+----------------------------+
| POINT(52.381389 13.064444) |
+----------------------------+
mysql> SET @p = ST_Transform(@p, 4230);
mysql> SELECT ST_AsText(@p);
+---------------------------------------------+
| ST_AsText(@p) |
+---------------------------------------------+
| POINT(52.38208611407426 13.065520672345304) |
+---------------------------------------------+
关于MySQL Spatial - 从 SRID 31287 转换为 4326,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21877179/