MySQL Spatial - 从 SRID 31287 转换为 4326

标签 mysql spatial srid

在 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/

相关文章:

django - postgis 如何处理使用不同 SRID 发送的坐标

PHP 相加两个时间变量

mysql - 向结果添加一列,这是另一个具有依赖关系的 SELECT

r - 在一条线段上,找到沿线 x 个单位的点

r - 将 SpatialPointsDataFrame 与 SpatialPolygonsDataFrame 组合时出现错误 : maximum returned dense matrix size exceeded

mysql - 根据两个表中的数据选择行

mysql - 将 MySQL 日期和时间转换为日期时间

c# - 将 geoJson 数据转换为 sql server 空间数据类型 (GIS)

postgis - 如何在postgis中创建一个以米为单位的圆?