您的源 SRID (1000047) 不是标准 EPSG 代码,也不是任何版本的 Oracle 附带的任何坐标系:它看起来像您自己定义的。你能告诉我们定义吗(select * from cs_srs where srid=1000047)?
查看您的输入 (11.26555560027597,53.87928275206266) - 这看起来不像任何投影。在我看来,它像一些大地坐标,可能在与 WGS84 不同的基准上。
您使用的坐标系定义是标准 SRID 31287 的定义:
PROJCS[
"MGI / Austria Lambert",
GEOGCS["MGI",
DATUM["Militar-Geographische Institut",
SPHEROID[
"Bessel 1841",
6377397.155,
299.1528128,
AUTHORITY["EPSG", "7004"]],
TOWGS84[577.326, 90.129, 463.919, 5.137, 1.474, 5.297, 2.4232],
AUTHORITY["EPSG", "6312"]],
PRIMEM["Greenwich", 0.000000, AUTHORITY["EPSG","8901"]],
UNIT["degree (supplier to define representation)", 0.0174532925199433, AUTHORITY["EPSG", "9122"]],
AXIS["Lat", NORTH],
AXIS["Long", EAST],
AUTHORITY["EPSG", "4312"]],
PROJECTION ["Lambert Conformal Conic"],
PARAMETER ["Latitude_Of_Origin", 47.5],
PARAMETER ["Central_Meridian", 13.3333333333333333],
PARAMETER ["Standard_Parallel_1", 49.0],
PARAMETER ["Standard_Parallel_2", 46.0],
PARAMETER ["False_Easting", 400000.0],
PARAMETER ["False_Northing", 400000.0],
UNIT["metre", 1.0, AUTHORITY["EPSG", "9001"]],
AXIS["X", NORTH],
AXIS["Y", EAST],
AUTHORITY["EPSG", "31287"]]
与您的主要区别在于您缺少基准偏移参数。另一个区别是标准平行线是相反的:平行线 1 是 49,平行线 2 是 46,而您的定义中是 46 和 49。
这是我转换您作为示例发布的几何图形时得到的结果(使用 31287 编码):
select sdo_cs.transform (
sdo_geometry(2003,31287,null,sdo_elem_info_array(1, 1003, 1),sdo_ordinate_array(607205.274999979, 528729.87700098, 607052.849999979, 528254.154000983, 607080.702999979, 528224.753000982, 607098.889999979, 528220.193000982, 607113.807999979, 528225.393000979, 607272.533999979, 528720.85100098, 607269.772999979, 528724.96700098, 607205.274999979, 528729.87700098)),
4326
)
from dual;
SDO_GEOMETRY(2003, 4326, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(16.1442004, 48.62389, 16.1419009, 48.6196637, 16.1422641, 48.6193904, 16.1425084, 48.6193435, 16.1427132, 48.6193854, 16.1451079, 48.623787, 16.1450725, 48.6238249, 16.1442004, 48.62389))
结果对我来说看起来不错。你能验证它是吗?
您运行什么确切版本的 Oracle?SRID 31287 从 10gR2 开始存在。
在我看来,最简单的方法是为您的数据使用 srid 31287 而不是自定义的 100047。