OracleSpatial自定义空间参考

  • 1.如何判断OracleSpatial中是否存在该空间参考
  • 2.怎么向OracleSpatial中插入自定义的空间参考
    • 2.1插入地理坐标系统
      • 2.1.1权限
      • 2.1.2自定义的空间参考的详细信息
      • 2.1.3插入自定义坐标系
      • 2.1.4插入自定义椭球体
      • 2.1.5插入自定义大地基准面
      • 2.1.6测试自定义地理坐标系统是否成功
      • 2.1.7删除自定义的地理坐标系统
    • 2.2插入投影坐标系统
      • 2.2.1权限
      • 2.2.2自定义的空间参考的详细信息
      • 2.2.3插入自定义坐标转换规则
      • 2.2.4插入自定义转换参数
      • 2.2.5插入自定义椭球体
      • 2.1.6插入自定义大地基准面
      • 2.1.7插入基础地理坐标系
      • 2.1.8插入投影坐标系
      • 2.1.9测试自定义地理坐标系统是否成功

1.如何判断OracleSpatial中是否存在该空间参考

通过SQL语句在mdsys.cs_srs 视图中查找指定EPSG号的空间参考是否存在,例如查询EPSG:4490、EPSG:7005是否存在的sql语句如下:

select * from mdsys.cs_Srs where srid = 4490;
select * from mdsys.cs_Srs where srid = 7005;

2.怎么向OracleSpatial中插入自定义的空间参考

2.1插入地理坐标系统

2.1.1权限

向OracleSpatial中插入自定义的空间参考,需要拥有数据库DBA权限。

2.1.2自定义的空间参考的详细信息

在EPSG官网中,查找指定EPSG号的空间参考信息,例如EPSG:4490
Unit: degree (supplier to define representation)
Geodetic CRS: China Geodetic Coordinate System 2000
Datum: China 2000
Ellipsoid: CGCS2000
Prime meridian: Greenwich
Data source: OGP
Information source: EPSG. See 3D CRS for original information source.
Revision date: 2012-01-05
Scope: Horizontal component of 3D system.
Remarks: Adopted July 2008. Replaces Xian 1980 (CRS code 4610).
Area of use: China - onshore and offshore.
Coordinate system: Ellipsoidal 2D CS. Axes: latitude, longitude. Orientations: north, east. UoM: degree
OGCWKT: GEOGCS[“China Geodetic Coordinate System 2000”,DATUM[“China_2000”,SPHEROID[“CGCS2000”,6378137,298.257222101,AUTHORITY[“EPSG”,“1024”]],AUTHORITY[“EPSG”,“1043”]],PRIMEM[“Greenwich”,0,AUTHORITY[“EPSG”,“8901”]],UNIT[“degree”,0.0174532925199433,AUTHORITY[“EPSG”,“9122”]],AUTHORITY[“EPSG”,“4490”]]

EPSG:4490
GEOGCS[“China Geodetic Coordinate System 2000”,DATUM[“China_2000”,SPHEROID[“CGCS2000”,6378137,298.257222101,AUTHORITY[“EPSG”,“1024”]],AUTHORITY[“EPSG”,“1043”]],PRIMEM[“Greenwich”,0,AUTHORITY[“EPSG”,“8901”]],UNIT[“degree”,0.0174532925199433,AUTHORITY[“EPSG”,“9122”]],AXIS[“Latitude”,NORTH],AXIS[“Longitude”,EAST],AUTHORITY[“EPSG”,“4490”]]

2.1.3插入自定义坐标系

坐标系:指坐标系统的坐标轴信息,包括坐标轴的维度、坐标轴的名称、坐标轴的方向、坐标轴的单位信息等。
地理坐标系统的坐标系均为6422大地坐标系:
编号:6422,
名称:Ellipsoidal 2D CS. Axes: latitude, longitude. Orientations: north, east. UoM: degree
类型:ellipsoidal
维度:2
信息来源:OGP
坐标轴:
编号:9901
名称:latitude
方向:north
单位:degree (单位ID:9122)
顺序:1
坐标轴:
编号:9902
名称:longitude
名称缩写:long
方向:east
单位:degree (单位ID:9122)
顺序:2

在SDO_COORD_SYS表中查找坐标系统是否存在,,如果存在就查询COORD_SYS_ID,如果不存在就插入一条记录

–查询坐标系ID,双击Coordinate system后的连接,可知坐标系的ID为6422
select * from SDO_COORD_SYS t where t.coord_sys_id = 6422;

–如果不存在,则插入坐标系
insert into SDO_COORD_SYS
(coord_sys_id,
coord_sys_name,
coord_sys_type,
dimension,
information_source,
data_Source
)
values
(
4400003,–坐标系的编号,取SDO_COORD_SYS中最大的coord_sys_id+1
‘Ellipsoidal 2D CS. Axes: latitude, longitude. Orientations: north, east. UoM: degree’, --坐标系的名称,来源于EPSG官网中的Coordinate system信息
‘ellipsoidal’,–坐标系的类型,来源于EPSG官网中的Coordinate system信息
2,–坐标系的维度,来源于EPSG官网中的Coordinate system信息
‘EPSG’,–信息的来源:EPSG
‘EPSG’–信息的来源:EPSG
);

–根据坐标轴名称查询坐标轴ID,坐标轴名称来源于Coordinate system中的Axes信息 latitude表示纬度 longitude表示经度
select * from SDO_COORD_AXIS_NAMES t where t.coord_axis_name like ‘%latitude%’; --查询的结果为 9901 Geodetic latitude,9926 Spherical latitude,选择9901大地纬度
select * from SDO_COORD_AXIS_NAMES t where t.coord_axis_name like ‘%longitude%’;–查询的结果为 9902 Geodetic longitude,9927 Spherical longitude,选择9902大地经度

–坐标轴单位, 9122
来源UNIT[“degree”,0.0174532925199433,AUTHORITY[“EPSG”,“9122”]]

– 为自定义的坐标系统定义坐标轴 纬度
insert into SDO_COORD_AXES
values
(
4400003, --自定义坐标系统的ID 该ID在SDO_COORD_SYS表中必须存在
9901, --大地纬度坐标轴的ID,该ID在SDO_COORD_AXIS_NAMES中必须存在
‘north’,–纬度坐标轴的方法:向北
‘lat’, – latitude的缩写
9122, --坐标轴的单位ID 来源于EPSG官网中的OGCWKT中UNIT参数信息,该ID在SDO_UNITS_OF_MEASURE中必须存在
1 --坐标轴顺序 纬度为1 经度为2
);

– 为自定义的坐标系统定义坐标轴 经度
insert into SDO_COORD_AXES
values
(
4400003,
9902, --大地经度坐标轴的ID,该ID在SDO_COORD_AXIS_NAMES中必须存在
‘east’, --大地经度坐标轴的方向 向东
‘long’, – longitude的缩写
9122, --坐标轴的单位ID 来源于EPSG官网中的OGCWKT中UNIT参数信息,该ID在SDO_UNITS_OF_MEASURE中必须存在
2 --坐标轴顺序 纬度为1 经度为2
);

2.1.4插入自定义椭球体

椭球体信息:包括椭球的ID、名称、长半轴、短半轴、扁率、单位。这些信息均存储在WKT串的SPHEROID参数中,其中短半轴需要根据长半轴和扁率计算得出,WKT中描述的扁率是实际扁率的倒数,例如:
例如EPSG:4490的SPHEROID[“CGCS2000”,6378137,298.257222101,AUTHORITY[“EPSG”,“1024”]]
椭球体ID:1024
椭球体名称:CGCS2000
长半轴:6378137
短半轴:6378137*(1-1/298.257222101)
扁率:298.257222101
单位:米 (指长半轴、短半轴的单位,单位对应的ID是9001)
在SDO_ELLIPSOIDS表中查找椭球体是否存在,,如果存在就查询ELLIPSOID_ID,如果不存在就插入一条记录
OGCWKT:中查找SPHEROID关键字信息,找到椭球体的EPSG号
例如EPSG:4490的SPHEROID[“CGCS2000”,6378137,298.257222101,AUTHORITY[“EPSG”,“1024”]],则表示EPSG:4490空间坐标系统对应的椭球体的ID为1024

–查询椭球体是否存在
select * from SDO_ELLIPSOIDS t where t.ellipsoid_id = 1024;

–如果不存在就插入一条记录
INSERT INTO SDO_ELLIPSOIDS (
ELLIPSOID_ID, --椭球ID,来源于EPSG官网中的OGCWKT中SPHEROID参数信息
ELLIPSOID_NAME, --椭球名称,来源于EPSG官网中的Ellipsoid信息
SEMI_MAJOR_AXIS, --长半轴,来源于EPSG官网中的OGCWKT中SPHEROID参数信息
UOM_ID, --椭球体单位,指长半轴,短半轴,扁率等值的单位,此处OGCWKT中表述的这些参数的单位是米,该ID在SDO_UNITS_OF_MEASURE中必须存在,此处的单位ID是9001
INV_FLATTENING, --扁率,来源于EPSG官网中的OGCWKT中SPHEROID参数信息
SEMI_MINOR_AXIS, --短半轴 ,来源于EPSG官网中的OGCWKT中SPHEROID参数信息,6378137*(1-1/298.257222101)
INFORMATION_SOURCE, --来源于EPSG官网中的Information source参数信息
DATA_SOURCE, --来源于EPSG官网中的Geodetic CRS参数信息:
IS_LEGACY, --是否在Oracle10.2之前的版本中定义了相同的椭球体,由于是自定义椭球,此处直接设置FALSE
LEGACY_CODE) --存在相同语义的椭球体的值,此处直接设置null
VALUES(
1024,
‘CGCS2000’,
6378137,
9001,
298.257222101,
6356752.314140356,
‘EPSG. See 3D CRS for original information source’,
‘OGP’,
‘FALSE’,
null
);

–查询椭球体的主子午线是否存在
select * from SDO_PRIME_MERIDIANS t where t.prime_meridian_id = 8901; --子午线来源于 EPSG官网中OGCWKT中的PRIMEM参数信息

2.1.5插入自定义大地基准面

基准面信息:包括基准面的ID、名称、类型、椭球ID。这些信息均存储在WKT串的DATUM、PRIMEM参数中,例如:
例如EPSG:4490的DATUM[“China_2000”,SPHEROID[“CGCS2000”,6378137,298.257222101,AUTHORITY[“EPSG”,“1024”]],AUTHORITY[“EPSG”,“1043”]],
PRIMEM[“Greenwich”,0,AUTHORITY[“EPSG”,“8901”]]
基准面ID:1043
基准面名称:China_2000
基准面类型:GEODETIC
椭球ID:1024
主午线ID:8901
七参数:来源于WKT串中的TOWGS84参数
在SDO_DATUMS表中查找椭球面是否存在,,如果存在就不处理,如果不存在就插入一条记录
OGCWKT:中查找DATUM关键字信息,找到椭球面的EPSG号
例如EPSG:4490的DATUM[“China_2000”,SPHEROID[“CGCS2000”,6378137,298.257222101,AUTHORITY[“EPSG”,“1024”]],AUTHORITY[“EPSG”,“1043”]],,
则表示EPSG:4490空间坐标系统对应的椭球面的ID为1043

–查询椭球面是否存在
select * from SDO_DATUMS t where t.datum_id = 1043;–datum_id来源于 EPSG官网中OGCWKT中的DATUM参数信息

–插入自定义的椭球面
INSERT INTO SDO_DATUMS (
DATUM_ID, --大地基准ID,来源于EPSG官网中OGCWKT中Datum参数信息
DATUM_NAME, --大地基准名称,来源于EPSG官网中的Datum参数信息
DATUM_TYPE, --大地基准类型,来源于EPSG官网中Geodetic CRS参数信息
ELLIPSOID_ID, --椭球ID,来源于EPSG官网中的OGCWKT中SPHEROID参数信息
PRIME_MERIDIAN_ID, --主午线ID 子午线来源于 EPSG官网中OGCWKT中的PRIMEM参数信息
INFORMATION_SOURCE, --来源于EPSG官网中的Information source参数信息
DATA_SOURCE, --来源于EPSG官网中的Geodetic CRS参数信息:
SHIFT_X, --7参数:在x轴上,将椭球中心相对于WGS 84椭球中心相对移动的米数
SHIFT_Y, --7参数:在Y轴上,将椭球中心相对于WGS 84椭球中心相对移动的米数
SHIFT_Z, --7参数:在Z轴上,将椭球中心相对于WGS 84椭球中心相对移动的米数
ROTATE_X, --7参数:绕x轴旋转的弧秒数。
ROTATE_Y, --7参数:绕Y轴旋转的弧秒数。
ROTATE_Z, --7参数:绕Z轴旋转的弧秒数。
SCALE_ADJUST, --7参数:调整参数
IS_LEGACY, --是否在Oracle10.2之前的版本中定义了相同的椭球体,由于是自定义椭球,此处直接设置FALSE
LEGACY_CODE --存在相同语义的椭球体的值,此处直接设置null
)
VALUES (
1043,
‘China 2000’,
‘GEODETIC’,
1024,
8901,
‘EPSG. See 3D CRS for original information source’,
‘OGP’,
null,
null,
null,
null,
null,
null,
null,
‘FALSE’,
null
);
插入自定义地理坐标系
– 插入自定义地理坐标系统
INSERT INTO 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,
LEGACY_CS_BOUNDS,
IS_VALID,
SUPPORTS_SDO_GEOMETRY)
VALUES (
4490, --空间参考ID ,来源于EPSG官网
‘China Geodetic Coordinate System 2000’, --空间参考的名称,来源于EPSG官网中Geodetic CRS参数信息
‘GEOGRAPHIC2D’,
4400003, --坐标系ID ,可以使用自定义的4400003,也可以使用数据库中存在的6422
1043, --椭球面ID
1043, --椭球面ID
NULL,
NULL,
NULL,
NULL,
‘EPSG. See 3D CRS for original information source.’,
‘OGP’,
‘FALSE’,
NULL,
NULL,
NULL,
‘TRUE’,
‘TRUE’
);

2.1.6测试自定义地理坐标系统是否成功

1、通过sql语句查询元表,验证插入自定义空间参考是否成功。
select * from mdsys.cs_srs t where t.SRID = 4490;

2、通过创建空间表设置空间参考为当前自定义的空间参考->插入数据->创建空间索引,验证自定义空间参考是否成功。

– 创建测试表 sr_test_srid_of_custom1
create table sr_test_srid_of_custom1
(
oid number(10),
geometry sdo_geometry,
remark varchar2(1024)
);

–写元表信息
INSERT INTO mdsys.user_sdo_geom_metadata
VALUES
(
upper(‘sr_test_srid_of_custom1’),
upper(‘geometry’),
SDO_DIM_ARRAY
( – 20X20 grid
SDO_DIM_ELEMENT(‘X’, 110.620999999, 111.671999998, 0.005),
SDO_DIM_ELEMENT(‘Y’, 19.528999999, 19.750999995, 0.005)
),
4490 – SRID
);

– 写入数据 sr_test_srid_of_custom1
insert into sr_test_srid_of_custom1
values
(
1,
MDSYS.SDO_GEOMETRY
(
2003,
4490, – SRID
NULL,
SDO_ELEM_INFO_ARRAY(1,3,1),
SDO_ORDINATE_ARRAY( 110.672 , 19.5290000005951, 110.678 , 19.5410000005954, 110.678 , 19.5460000005955, 110.674 , 19.5550000005958,
110.667 , 19.5610000005959, 110.662 , 19.565000000596 , 110.656 , 19.5700000005962, 110.65 , 19.5750000005963, 110.645 , 19.5830000005965,
110.64 , 19.5970000005969, 110.639 , 19.6070000005971, 110.641 , 19.6160000005973, 110.647 , 19.6310000005977, 110.649 , 19.6380000005979,
110.645 , 19.6460000005981, 110.636 , 19.6530000005983, 110.628 , 19.6600000005985, 110.622 , 19.6670000005986, 110.621 , 19.6740000005988,
110.63 , 19.683000000599 , 110.637 , 19.6880000005992, 110.644 , 19.6970000005994, 110.648 , 19.7060000005996, 110.652 , 19.7160000005999,
110.656 , 19.7310000006003, 110.658 , 19.7410000006005, 110.663 , 19.7510000006008,111.672 , 19.6290000005951,110.672 , 19.5290000005951)
),
‘CGCS2000’
);

– 创建空间索引
Create index test_index_1 on sr_test_srid_of_custom1(geometry) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS(‘SDO_COMMIT_INTERVAL=1000’);

–删除创建的测试表
drop index test_index_1;
delete mdsys.sdo_geom_metadata_table t where t.sdo_owner = ‘TEST’ and t.sdo_table_name = upper(‘sr_test_srid_of_custom1’);
drop table sr_test_srid_of_custom1;

2.1.7删除自定义的地理坐标系统

delete mdsys.SDO_COORD_REF_SYSTEM t where t.SRID = 4490;
delete mdsys.sdo_datums t where t.datum_id = 1043;
delete mdsys.Sdo_Ellipsoids t where t.ellipsoid_id = 1024;
delete mdsys.Sdo_Coord_Axes t where t.coord_sys_id = 4400003;
delete mdsys.Sdo_Coord_Sys t where t.coord_sys_id = 4400003;

2.2插入投影坐标系统

2.2.1权限

向OracleSpatial中插入自定义的空间参考,需要拥有数据库DBA权限。

2.2.2自定义的空间参考的详细信息

在EPSG官网中,查找指定EPSG号的空间参考信息,例如EPSG:7005
Unit: metre
Geodetic CRS: Nahrwan 1934
Datum: Nahrwan 1934
Ellipsoid: Clarke 1880 (RGS)
Prime meridian: Greenwich
Data source: OGP
Information source: Various industry sources.
Revision date: 2015-02-05
Scope: Large and medium scale topographic mapping and engineering survey.
Remarks: Replaced by Karbala 1979 (Polservice) / UTM zone 37N (projCRS code 3391).
Area of use: Iraq - west of 42°E.
Coordinate system: Cartesian 2D CS. Axes: easting, northing (E,N). Orientations: east, north. UoM: m.
OGCWKT: PROJCS[“Nahrwan 1934 / UTM zone 37N”,GEOGCS[“Nahrwan 1934”,DATUM[“Nahrwan_1934”,SPHEROID[“Clarke 1880 (RGS)”,6378249.145,293.465,AUTHORITY[“EPSG”,“7012”]],TOWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY[“EPSG”,“6744”]],PRIMEM[“Greenwich”,0,AUTHORITY[“EPSG”,“8901”]],UNIT[“degree”,0.0174532925199433,AUTHORITY[“EPSG”,“9122”]],AXIS[“Latitude”,NORTH],AXIS[“Longitude”,EAST],AUTHORITY[“EPSG”,“4744”]],PROJECTION[“Transverse_Mercator”],PARAMETER[“latitude_of_origin”,0],PARAMETER[“central_meridian”,39],PARAMETER[“scale_factor”,0.9996],PARAMETER[“false_easting”,500000],PARAMETER[“false_northing”,0],UNIT[“metre”,1,AUTHORITY[“EPSG”,“9001”]],AXIS[“Easting”,EAST],AXIS[“Northing”,NORTH],AUTHORITY[“EPSG”,“7005”]]

2.2.3插入自定义坐标转换规则

1、查找坐标转换规则ID,PROJECTION[“Transverse_Mercator”]对应的ID为9807,具体查找过程如下:
select
coord_op_method_id,
legacy_name
from
sdo_coord_op_methods
where
not legacy_name is null
order by
coord_op_method_id;
–结果显示
–COORD_OP_METHOD_ID LEGACY_NAME
– 9802 Lambert Conformal Conic
– 9803 Lambert Conformal Conic (Belgium 1972)
– 9805 Mercator
– 9806 Cassini
– 9807 Transverse Mercator
– 9829 Polar Stereographic

2、自定义坐标转换规则
–建立坐标转换规则,编号1000000003 ,查询已有编号最大为1000000002:select max(coord_op_id) from mdsys.sdo_coord_ops t;
insert into MDSYS.SDO_COORD_OPS(
COORD_OP_ID,
COORD_OP_NAME,
COORD_OP_TYPE,
COORD_OP_METHOD_ID,
SHOW_OPERATION,
IS_LEGACY,
REVERSE_OP,
IS_IMPLEMENTED_FORWARD,
IS_IMPLEMENTED_REVERSE)
VALUES(
1000000003,
’ UTM zone 37N ',
‘CONVERSION’,
9807,
1,
‘FLASE’,
1,
1,
1);

2.2.4插入自定义转换参数

--现在,插入参数

– 8801:Latitude_Of_Origin
insert into MDSYS.Sdo_Coord_Op_Param_Vals(
COORD_OP_ID,
COORD_OP_METHOD_ID,
PARAMETER_ID,
PARAMETER_VALUE,
PARAM_VALUE_FILE_REF,
UOM_ID
)
VALUES(
1000000003,
9807,
8801,
0,
NULL,
9102
);
– 8802:Central_Meridian
insert into MDSYS.SDO_COORD_OP_PARAM_VALS(
COORD_OP_ID,
COORD_OP_METHOD_ID,
PARAMETER_ID,
PARAMETER_VALUE,
PARAM_VALUE_FILE_REF,
UOM_ID)
VALUES(
1000000003,
9807,
8802,
39,
NULL,
9102
);
– 8805:Scale_Factor
insert into MDSYS.SDO_COORD_OP_PARAM_VALS(
COORD_OP_ID,
COORD_OP_METHOD_ID,
PARAMETER_ID,
PARAMETER_VALUE,
PARAM_VALUE_FILE_REF,
UOM_ID)
VALUES(
1000000003,
9807,
8805,
0.9996,
NULL,
9201
);
– 8806:False_Easting
insert into MDSYS.SDO_COORD_OP_PARAM_VALS(
COORD_OP_ID,
COORD_OP_METHOD_ID,
PARAMETER_ID,
PARAMETER_VALUE,
PARAM_VALUE_FILE_REF,
UOM_ID)
VALUES(
1000000003,
9807,
8806,
500000,
NULL,
9001
);
– 8807:False_Northing
insert into MDSYS.SDO_COORD_OP_PARAM_VALS(
COORD_OP_ID,
COORD_OP_METHOD_ID,
PARAMETER_ID,
PARAMETER_VALUE,
PARAM_VALUE_FILE_REF,
UOM_ID)
VALUES(
1000000003,
9807,
8807,
0,
NULL,
9001
);

2.2.5插入自定义椭球体

–查询椭球体是否存在
select * from mdsys.sdo_ellipsoids t where t.ellipsoid_id = 7012;

–如果不存在就插入一条记录
此处参见2.1.4章节

2.1.6插入自定义大地基准面

–查询大地基准面
select * from mdsys.Sdo_Datums t where t.datum_id = 6744;

–如果不存在就插入一条记录
INSERT INTO SDO_DATUMS (
DATUM_ID, --大地基准ID,来源于EPSG官网中OGCWKT中Datum参数信息
DATUM_NAME, --大地基准名称,来源于EPSG官网中的Datum参数信息
DATUM_TYPE, --大地基准类型,来源于EPSG官网中Geodetic CRS参数信息
ELLIPSOID_ID, --椭球ID,来源于EPSG官网中的OGCWKT中SPHEROID参数信息
PRIME_MERIDIAN_ID, --主午线ID 子午线来源于 EPSG官网中OGCWKT中的PRIMEM参数信息
INFORMATION_SOURCE, --来源于EPSG官网中的Information source参数信息
DATA_SOURCE, --来源于EPSG官网中的Geodetic CRS参数信息:
SHIFT_X, --7参数:在x轴上,将椭球中心相对于WGS 84椭球中心相对移动的米数
SHIFT_Y, --7参数:在Y轴上,将椭球中心相对于WGS 84椭球中心相对移动的米数
SHIFT_Z, --7参数:在Z轴上,将椭球中心相对于WGS 84椭球中心相对移动的米数
ROTATE_X, --7参数:绕x轴旋转的弧秒数。
ROTATE_Y, --7参数:绕Y轴旋转的弧秒数。
ROTATE_Z, --7参数:绕Z轴旋转的弧秒数。
SCALE_ADJUST, --7参数:调整参数
IS_LEGACY, --是否在Oracle10.2之前的版本中定义了相同的椭球体,由于是自定义椭球,此处直接设置FALSE
LEGACY_CODE --存在相同语义的椭球体的值,此处直接设置null
)
VALUES (
6744,
‘Nahrwan 1934’,
‘GEODETIC’,
7012,
8901,
‘EPSG. See 3D CRS for original information source’,
‘OGP’,
-242.2,
-144.9,
370.3,
0,
0,
0,
0,
‘FALSE’,
null
);

2.1.7插入基础地理坐标系

INSERT INTO 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,
LEGACY_CS_BOUNDS,
IS_VALID,
SUPPORTS_SDO_GEOMETRY)
VALUES (
1000003006, --空间参考ID ,取表中最大SRID+1
‘Nahrwan 1934’,
‘GEOGRAPHIC2D’,
6422,
6744,
6744,
NULL,
NULL,
NULL,
NULL,
‘EPSG. See 3D CRS for original information source.’,
‘OGP’,
‘FALSE’,
NULL,
NULL,
NULL,
‘TRUE’,
‘TRUE’
);

2.1.8插入投影坐标系

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(
7005,
‘Nahrwan 1934 / UTM zone 37N’,
‘PROJECTED’,
4400, – 坐标系ID,在EPSG官网中找到 Xian 1980 / 3-degree Gauss-Kruger CM 117E 对应的坐标系为:Coordinate system: Cartesian 2D CS. Axes: northing, easting (X,Y). Orientations: north, east. UoM: m.其EPSG为4530
NULL,
6744, --大地基准面ID 来源 DATUM [“Xian 1980 (EPSG ID 6610)”, SPHEROID [“Xian 1980 (EPSG ID 7049)”, 6378140, 298.257]],
1000003006, --基础地理坐标系ID select t.SRID from mdsys.SDO_COORD_REF_SYSTEMTEM t where t.DATUM_ID = 6610;
1000000003, --坐标转换规则ID
NULL,
NULL,
‘EPSG’,
‘EPSG’,
‘FALSE’,
NULL,
NULL,
‘TRUE’,
‘TRUE’);

2.1.9测试自定义地理坐标系统是否成功

1、通过sql语句查询元表,验证插入自定义空间参考是否成功。
select * from mdsys.cs_srs t where t.SRID = 7005;

2、通过创建空间表设置空间参考为当前自定义的空间参考->插入数据->创建空间索引,验证自定义空间参考是否成功。

– 创建测试表 test_7005_true
create table test_7005_true
(
oid number(10),
geometry sdo_geometry);

–写元表信息
INSERT INTO mdsys.user_sdo_geom_metadata
VALUES
(
upper(‘test_7005_true’),
upper(‘geometry’),
SDO_DIM_ARRAY
( – 20X20 grid
SDO_DIM_ELEMENT(‘X’, 508113.225983, 508113.273344, 0.00000001),
SDO_DIM_ELEMENT(‘Y’, 4371331.437794, 4371331.477217, 0.00000001)
),
7005 – SRID
);

– 写入数据 test_7005_true
insert into test_7005_true
values
(
1,
MDSYS.SDO_GEOMETRY
(
2003,
7005, – SRID
NULL,
SDO_ELEM_INFO_ARRAY(1,3,1),
SDO_ORDINATE_ARRAY(508113.225983,4371331.437794, 508113.255983,4371331.437794, 508113.255983,4371331.457794, 508113.225983,4371331.457794, 508113.225983,4371331.437794)
)
);

– 创建空间索引

Create index I20170911111009246845 on test_7005_true(geometry) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS(‘SDO_COMMIT_INTERVAL=1000’);

–删除表
drop table test_7005_true;
–删除元表信息
delete mdsys.User_Sdo_Geom_Metadata t where t.TABLE_NAME = upper(‘test_7005_true’);
2.1.10删除自定义的投影坐标系统
–删除自定义的EPSG:7005的投影坐标系

–删除投影坐标系统
delete MDSYS.SDO_COORD_REF_SYSTEM t where t.SRID = 7005;

–删除投影坐标系统依赖的基础地理坐标系统
delete MDSYS.SDO_COORD_REF_SYSTEM t where t.SRID = 1000003006;

–删除基础地理坐标系统依赖的基准面信息
delete MDSYS.SDO_DATUMS t where t.datum_id = 6744;

–删除坐标转换参数
delete MDSYS.SDO_COORD_OP_PARAM_VALS t where t.coord_op_id = 1000000003;

–删除坐标转换规则
delete MDSYS.SDO_COORD_OPS t where t.coord_op_id = 1000000003;

【Oracle实战经验一】:OracleSpatial自定义空间参考相关推荐

  1. gis中开始编辑之后显示空间参考_空间参考—帮助 | ArcGIS Desktop

    空间参考包括一个 x.y.z 值的坐标系.在企业级地理数据库中,空间参考还包含容差值和分辨率值.所有这些信息组合在一起将有助于指示平面地图上的形状表示地球上的哪个位置. 各空间参考还包括一个标识符(通 ...

  2. oracle delete 空间增加,实战经验:关于Oracle Delete数据后空间重用问题的测试

    概述 近期一个客户的一张单表,每天delete7天前的数据,每天的数据增量没什么变化,理论上来说,delete释放的空间是可重用的,但发现该表段最近一直在增长,现在大小为300G,170G的75% – ...

  3. 实战经验:关于Oracle Delete数据后空间重用问题的测试

    概述 近期一个客户的一张单表,每天delete7天前的数据,每天的数据增量没什么变化,理论上来说,delete释放的空间是可重用的,但发现该表段最近一直在增长,现在大小为300G,170G的75% – ...

  4. 实战经验:Oracle recyclebin过大导致的Insert逻辑读暴增问题的解决

    墨墨导读:某客户的数据库一条insert某段时间突然变慢,平均单次执行逻辑读暴增至20万,本文分享整个处理过程. 概述 某客户的数据库一条insert语句某段时间突然变慢,平均单次执行逻辑读暴增至20 ...

  5. 实战经验:Oracle Lost Write Detection机制导致Select产生大量Redo

    墨墨导读:某客户执行一个Select全表扫,产生大量Redo,需要分析原因.一般延迟块清除导致Select产生Redo,但这个案例中并不是延迟块清除的原因. 分析过程 1.在SELECT执行前保存该s ...

  6. 线上分享丨实战经验:解析Oracle中的redo与undo-云和恩墨大讲堂201907

    云和恩墨大讲堂升级啦,往期视频可以在线观看啦! 扫描下方二维码立即前往- 本期嘉宾 李元鹏 有着3年的Oracle从业经验,有着丰富的运营商工作经验,擅长DG与OGG的同步故障处理.数据库故障处理. ...

  7. Pinterest 谈实战经验:如何在两年内实现零到数百亿的月访问

    Pinterest 谈实战经验:如何在两年内实现零到数百亿的月访问 发表于2013-04-17 17:20| 5639次阅读| 来源High Scalability| 46 条评论| 作者Todd H ...

  8. (转)MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验...

    标签:服务器 数据库 老男孩 高薪技能 一线城市 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liangweilinux.bl ...

  9. ASP.NET Core amp; Docker 实战经验分享

    一.前言 最近一直在研究和实践ASP.NET Core.Docker.持续集成.在ASP.NET Core 和 Dcoker结合下遇到了一些坑,在此记录和分享,希望对大家有一些帮助. 二.中间镜像 我 ...

最新文章

  1. word中使用MathType能做什么
  2. 关于事件监听机制的总结(Listener和Adapter)
  3. 向IIS注册ASP.NET代码
  4. 网易云信亮相LiveVideoStackCon 2019,解读移动端播放器优化实践
  5. java 为什么序列化_java类为什么要序列化
  6. MySQL 高级 - 视图 - 概述
  7. php url地址 怎么写,php url地址重写
  8. java textfield类方法_java.awt.TextField类
  9. 使用jdbc执行SQL实现登录查询1-带配置文件和工具类
  10. mysql 关键词相关度排序方法详细示例分析
  11. 数据从一个Oracle导到另一个,oracle拷贝数据导另一个用户
  12. 来自Curriki和SankoréWiki的免费教育资源
  13. linuxsz隐藏文件_linux中rz上传、sz下载命令详解
  14. 以优美方式编写JavaScript代码
  15. 方舟生存进化mysql_基于MySQL 的 SQL 优化总结_卡盟,辅助
  16. 电子制作:红外遥控器检测仪的制作
  17. ​新型冠状病毒是对未来自我隔离的预演?
  18. mysql 联合主键 null_提问关于 mysql得联合主键和复合主键的问题
  19. haproxy配置sni实现https多域名代理
  20. inputstream流乱码_InputStream读取文件乱码

热门文章

  1. java中的terminated_Java State.TERMINATED屬性代碼示例
  2. IDEA下载以及一些基本配置
  3. 视频直播交友APP源码 直播聊天室源码
  4. linux ntp strata too high,linux – ntpdate -d服务器掉线Strata太高了
  5. JAVA打车拼车系统服务端计算机毕业设计Mybatis+系统+数据库+调试部署
  6. 网络基础-路由篇-静态路由
  7. 以太宇宙(ETU)可能颠覆OK、火币、币安现有格局,降维打击!
  8. CGAL笔记之单元格复合体和多面体篇—三维多面体曲面
  9. 《Python机器学习基础教程》(一)——引言(k近邻算法)
  10. html 空间扭曲效果,HTML5 Canvas点阵空间塌缩交互动画