Oracle Spatial定义空间参考系(二、投影坐标系)

GIS
237 0

本文介绍如何在Oracle Spatial空间数据中添加自定义坐标系。

Oracle 11g r2数据库中没有定义CGCS2000 / 3-degree Gauss-Kruger zone 37 (SRID=4525)的投影坐标系,本文将详细说明添加该坐标系的全过程。

1. 判断Oracle Spatial中是否存在该空间参考系

在视图MDSYS.CS_SRS视图中查找指定SRID值的空间参考系是否存在。

select * from MDSYS.CS_SRS where SRID = 4525;

如果不存在,则按照下面的流程进行添加。

该投影坐标系依赖2000国家大地坐标系(CGCS2000, SRID=4490),需要首先定义该地理坐标系。

方法参考:Oracle Sptaial定义空间参考系(一、地理坐标系)

2. 查找空间参考系的详细信息

从EPSG官网 https://epsg.org 查询空间参考系的详细信息。

点击顶部导航栏 EPSG Dataset -> Text Search进入查询页面。

搜索栏中输入 4525 进行搜索。点击搜索结果名称,进入详情页面。如下图所示:

2.1 定义信息

点击右上角的WKT查看以WKT描述内容。

2.2 说明

PROJCRS[   // 表示[]中定义的是一个投影坐标系。
    "CGCS2000 / 3-degree Gauss-Kruger zone 37",  // 投影坐标系的名称
    BASEGEOGCRS[   // 地理坐标系基础,这里以上面的2000国家大地坐标系为基础
        "China Geodetic Coordinate System 2000",
        DATUM["China 2000",ELLIPSOID["CGCS2000",6378137,298.257222101,LENGTHUNIT["metre",1,ID["EPSG",9001]],ID["EPSG",1024]],ID["EPSG",1043]],
        ID["EPSG",4490]
    ],
    CONVERSION[  // 坐标变换
        "3-degree Gauss-Kruger zone 37",  // 高斯克吕格投影3度带第37带
        METHOD[
            "Transverse Mercator",  // 横轴墨卡托
            ID["EPSG",9807]
        ],
        PARAMETER[   // 参数
            "Latitude of natural origin",  // 起始纬度
            0,
            ANGLEUNIT[
                "degree",
                0.0174532925199433,
                ID["EPSG",9102]
            ],
            ID["EPSG",8801]
        ],
        PARAMETER[
            "Longitude of natural origin",  // 起始经度
            111,
            ANGLEUNIT[
                "degree",
                0.0174532925199433,
                ID["EPSG",9102]
            ],
            ID["EPSG",8802]
        ],
        PARAMETER[
            "Scale factor at natural origin",  // 比例系数
            1,
            SCALEUNIT[
                "unity",
                1,
                ID["EPSG",9201]
            ],
            ID["EPSG",8805]
        ],
        PARAMETER[
            "False easting",  // 东伪移值
            37500000,
            LENGTHUNIT["metre",1,ID["EPSG",9001]],
            ID["EPSG",8806]
        ],
        PARAMETER[
            "False northing",  // 北伪移值
            0,
            LENGTHUNIT["metre",1,ID["EPSG",9001]],
            ID["EPSG",8807]
        ],
        ID["EPSG",16297]
    ],
    CS[  // 坐标系
        Cartesian,  // 笛卡尔坐标系
        2,
        ID["EPSG",4530]
    ],
    AXIS[  // 坐标轴
        "Northing (X)",  // X轴
        north  // 向北
    ],
    AXIS[
        "Easting (Y)",  // Y轴
        east  // 向东
    ],
    LENGTHUNIT[  // 单位
        "metre",  // 米
        1,
        ID["EPSG",9001]
    ],
    ID["EPSG",4525]  // 该投影坐标系的EPSG ID
]

3. 向数据库中添加空间参考系统SRID=4525

insert into
 MDSYS.SDO_COORD_REF_SYSTEM
 (SRID,COORD_REF_SYS_NAME,COORD_REF_SYS_KIND,COORD_SYS_ID,DATUM_ID,GEOG_CRS_DATUM_ID,
  SOURCE_GEOG_SRID,PROJECTION_CONV_ID,CMPD_HORIZ_SRID,CMPD_VERT_SRID,INFORMATION_SOURCE,
  DATA_SOURCE,IS_LEGACY,LEGACY_CODE,LEGACY_WKTEXT,IS_VALID,SUPPORTS_SDO_GEOMETRY)
values
 (
   4525,   -- 空间参考系SRID
   'CGCS2000 / 3-degree Gauss-Kruger zone 37',   -- 空间参考系名称
   'PROJECTED',   -- 空间参考系类型:投影
   4530,  -- 坐标系
   NULL, 
   1043, -- 基础地理坐标系(SRID=4490)的大地基准面ID (EPSG=1043)
   4490, -- 基础地理坐标系(SRID=4490)
   16297, -- 坐标转换规则ID
   NULL,
   NULL,
   'EPSG',
   'EPSG',
   'FALSE',
   NULL,
   NULL,
   'TRUE',  -- 是否有效,是
   'TRUE'   -- 是否支持几何对象,是
 );

4. 测试

参见:Oracle Spatial定义空间参考系(三、测试)

最后更新 2022-10-27
评论 ( 0 )
OωO
隐私评论