PostGIS 坐标转换(SRID)的边界问题 - ST_Transform

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

标签

PostgreSQL , PostGIS , ST_Transform , SRID , 26986


背景

某个用户在使用PostgreSQL ST_Transform转换坐标时,遇到一个边界问题(暂时不清楚是不是BUG,因为对SRID还不算太了解),导致距离计算不准确。

例子

下面两个4326坐标系的坐标,只相差了一点点,但是转换为26986坐标系时,出现了翻转。

postgres=# select ST_AsEWKT(ST_Transform(ST_GeomFromText('POINT(108.50000000001 22.8)', 4326), 26986));  
                      st_asewkt                        
-----------------------------------------------------  
 SRID=26986;POINT(8123333.59043839 12671815.6459695)  
(1 row)  
  
postgres=# select ST_AsEWKT(ST_Transform(ST_GeomFromText('POINT(108.5000000001 22.8)', 4326), 26986));  
                      st_asewkt                         
------------------------------------------------------  
 SRID=26986;POINT(-7723333.59044452 12671815.6459593)  
(1 row)  

使用转换后的坐标,计算距离,导致数据不准确。

解决方法,不要转换为26986坐标系统坐标

http://postgis.net/docs/manual-2.0/ST_Distance.html

try this:  
  
postgres=# select ST_Distance(ST_GeographyFromText('SRID=4326;POINT(108.51 22.8)'), ST_GeographyFromText('SRID=4326;POINT(108.499999999999999 22.79)'));  
-[ RECORD 1 ]--------------------  
st_distance | 1510.16913796499989  
  
-- Geography example -- same but note units in meters - use sphere for slightly faster less accurate  
  
-- Geometry example - units in meters (SRID: 26986 Massachusetts state plane meters) (most accurate for Massachusetts)  
相关文章
|
6月前
|
定位技术
97Echarts - 地理坐标/地图(Draw Polygon on Map)
97Echarts - 地理坐标/地图(Draw Polygon on Map)
25 0
|
6月前
266Echarts - GL 矢量场图(Global Wind Visualization 2)
266Echarts - GL 矢量场图(Global Wind Visualization 2)
26 0
|
6月前
266Echarts - GL 矢量场图(Global wind visualization)
266Echarts - GL 矢量场图(Global wind visualization)
23 0
|
6月前
|
定位技术
264Echarts - GL 散点图(10 million Bulk GPS points)
264Echarts - GL 散点图(10 million Bulk GPS points)
20 0
|
6月前
250Echarts - 3D 曲面(Sphere Parametric Surface)
250Echarts - 3D 曲面(Sphere Parametric Surface)
13 0
|
算法
NV21数据的旋转
NV21数据的旋转
106 0
|
图形学
【Transform3D】转换详解(看完就会)
【Transform3D】转换详解(看完就会)
88672 1
【Transform3D】转换详解(看完就会)
Google Earth Engine(GEE)——根据所选范围进行mosaic处理(矩形的顶点坐标)
Google Earth Engine(GEE)——根据所选范围进行mosaic处理(矩形的顶点坐标)
454 0
Google Earth Engine(GEE)——根据所选范围进行mosaic处理(矩形的顶点坐标)
|
机器学习/深度学习 索引
【OpenGL】十四、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_STRIP 三角形 | GL_TRIANGLE_STRIP 三角形绘制分析 )
【OpenGL】十四、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_STRIP 三角形 | GL_TRIANGLE_STRIP 三角形绘制分析 )
216 0
【OpenGL】十四、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_STRIP 三角形 | GL_TRIANGLE_STRIP 三角形绘制分析 )
|
存储 数据可视化 索引
Halcon数据类型转换系列(2)遍历xld;Region、XLD、Polygon之间的互相转换
Halcon数据类型转换系列(2)遍历xld;Region、XLD、Polygon之间的互相转换
875 0