数据转换产生意想不到的结果

datum transformation produces unexpected results

我是 postgis 的新手,所以请原谅我的问题可能被误导了。我正在尝试将坐标重新投影到标准基准中,但在某些情况下,我认为我没有得到真实的结果。最明显的是来自 https://epsg.io/4813 to https://epsg.io/4326.

select version();
                                                 version                                                 
---------------------------------------------------------------------------------------------------------
 PostgreSQL 12.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit

select postgis_version();
            postgis_version            
---------------------------------------
 3.0 USE_GEOS=1 USE_PROJ=1 USE_STATS=1

select ST_AsText(ST_Transform(ST_SetSrid(ST_MakePoint(107.8, -6.23), 4813), 4326)) as transformed_point_text;
           transformed_point_text           
--------------------------------------------
 POINT(-145.399281070071 -6.23065386582626)

-145.399281070071经度当然离原始坐标的来源Java不远

你确定原始坐标是正确的吗?经度 107.8 似乎位于爪哇边界框之外(根据 SRS)。我尝试使用以下坐标重现错误:lon 4.4169,lat -7.5152,它看起来很好:

SELECT 
  ST_AsText(
        ST_Transform(
          ST_SetSrid(ST_MakePoint(4.4169, -7.5152), 4813), 
          4326)) AS transformed_point_text;

            transformed_point_text            
----------------------------------------------
 POINT(111.22556977613065 -7.514891511989998)

您提供的坐标很可能已经在 WGS84 中(不在 EPSG:4813 中),因此不需要转换:

SELECT ST_SetSrid(ST_MakePoint(107.8, -6.23),4326);