之前项目换过服务器,移植数据库时候并没有正确完整的移植自定义的投影坐标系,结果就报出莫名其妙的一些错误,比如unable to transform rectangle due to: ORA-13199: SRID does not exist。

  因为在移植坐标系的时候仅仅只是将MDSYS.SDO_CRS_CS表中对应的SRID记录转存,一开始我也以为定义坐标系只要在这个表中插入数据即可,但发现事实并非如此。自定义投影坐标系是应该在视图MDSYS.SDO_COORD_REF_SYSTEM插入数据,通过触发器MDSYS.SDO_CRS_INSERT_TRIGGER在表MDSYS.SDO_COORD_REF_SYS插入相同的数据,并且在MDSYS.SDO_CRS_CS表中插入SRID记录。

  在向视图MDSYS.SDO_COORD_REF_SYSTEM中插入数据之前,首先需要知道你的转换参数,并将转换参数插入表MDSYS.Sdo_Coord_Op_Param_Vals中,下面给出一个实例:

--PROJCS[
--       "Xian 1980 / 3-degree Gauss-Kruger CM 118.83E",
--       GEOGCS [
--          "Xian 1980",
--          DATUM [
--             "Xian 1980 (EPSG ID 6610)",
--             SPHEROID ["Xian 1980 (EPSG ID 7049)", 6378140, 298.257]],
--             PRIMEM [ "Greenwich", 0.000000 ],
--             UNIT ["Decimal Degree", 0.01745329251994328]],
--             PROJECTION ["Transverse Mercator"],
--             PARAMETER ["Latitude_Of_Origin", 0],
--             PARAMETER ["Central_Meridian", 118.8333],
--             PARAMETER ["Scale_Factor", 1],
--             PARAMETER ["False_Easting", 500000],
--             PARAMETER ["False_Northing", 0],
--             UNIT ["Meter", 1]]
-- 首先,基础地理坐标系是Xian 1980, 它的EPSG ID为6610
-- 然后找到与计算PROJECTION["Transverse Mercator"]ESPG等式
select coord_op_method_id,   legacy_name
from sdo_coord_op_methods
where not legacy_name is nullorder 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
-------------
--根据PROJECTION ["Transverse Mercator"],选择9807
--建立坐标转换规则,编号96170insert into MDSYS.SDO_COORD_OPS(COORD_OP_ID,COORD_OP_NAME,COORD_OP_TYPE,SOURCE_SRID,TARGET_SRID,COORD_TFM_VERSION,COORD_OP_VARIANT,COORD_OP_METHOD_ID,UOM_ID_SOURCE_OFFSETS,UOM_ID_TARGET_OFFSETS,INFORMATION_SOURCE,DATA_SOURCE,SHOW_OPERATION,IS_LEGACY,LEGACY_CODE,REVERSE_OP,IS_IMPLEMENTED_FORWARD,IS_IMPLEMENTED_REVERSE)
VALUES(96170,'3-degree Gauss-Kruger CM 118.83E (EPSG OP 96170)',       'CONVERSION',NULL,NULL,NULL,NULL,9807,NULL,NULL,'EPSG','EPSG',1,'FLASE',NULL,1,1,1);--看看需要添加哪些参数
select use.parameter_id ||':'||use.legacy_param_name
fromsdo_coord_op_param_use use
where use.coord_op_method_id=9807
--结果:
--  8801:Latitude_Of_Origin
--  8802:Central_Meridian
--  8805:Scale_Factor
--  8806:False_Easting
--  8807:False_Northing
--检查一下完全吻合啊!!!!!
--现在查查经常使用的单位:
select UOM_ID ||':'||UNIT_OF_MEAS_NAME
from sdo_units_of_measure
where uom_id in (9001,9101,9102,9201)
order by uom_id;
--结果
--  9001:metre
--  9101:radian
--  9102:degree
--  9201:unity--现在,插入参数
--  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(96170,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(96170,9807,8802,118.833333333333,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(96170,9807,8805,1,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(96170,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(96170,9807,8807,0,NULL,9001
);
--现在建立投影坐标系。首先要确定GEOG_CRS_DATUM_ID和COORD_SYS_ID。
--GEOG_CRS_DATUM_ID是地理坐标系对应的datum_id
--select datum_id from sdo_coord_ref_sys where srid=4610
--GEOG_CRS_DATUM_ID为6610
--CORD_SYS_ID是4530,CORD_SYS_NAME为Cartesian 2D CS.  Axes: northing, easting (X,Y). Orientations: north, east.  UoM: m.
--现在开始建立投影坐标系
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,LEGACY_CS_BOUNDS,IS_VALID,SUPPORTS_SDO_GEOMETRY)
VALUES(9992010,'Xian 1980 / 3-degree Gauss-Kruger CM 118.83E','PROJECTED',4530,NULL,6610,4610,96170,NULL,NULL,'EPSG','EPSG','FALSE',NULL,NULL,NULL,'TRUE','TRUE'); 

转载于:https://www.cnblogs.com/cleverxy/archive/2012/04/28/2474563.html

Oracle Spatial构建自定义投影坐标系相关推荐

  1. ArcMap 自定义投影坐标系

    作为内业数据矢量化人员,最头疼的事情莫过于拿到的工程dwg文件的坐标是当地的坐标系,对于如何将地方坐标系数据矢量化成可供前端展示的wgs84坐标,火星坐标以及百度坐标,感到无从下手,我也摸索了很长时间 ...

  2. ArcMap自定义投影坐标系

    1.新建Shapefile文件 [1]启动ArcMap,新建空白地图文档: [2]打开[目录]窗口.单击[标准工具条]->[目录],弹出[目录]窗口,拖放[目录]窗口停靠在ArcMap右侧: [ ...

  3. oracle spatial(一)开端

    如今的互联网时代,貌似人和人之间,商业活动之间的交流受地理位置的限制越来越小.但实质上,互联网使数字世界和地理世界联系的越来越紧密.跟踪业务的组成部分和分析它们已成为更为重要的事情.地理空间位置信息是 ...

  4. 投影坐标系单位oracle,在Oracle Spatial中增加Web Mercator投影坐标系

    参考资料: 1. 最重要的参考文章,基本上就是按这个做的!!!:https://www.inf.unibz.it/dis/wiki/doku.php?id=students:minnerebner:o ...

  5. Arcgis中地理坐标系转投影坐标系(自定义地理坐标转换)

    一般情况下,图层的坐标点由经纬度表示,单位为度,这是地理坐标系(地理坐标系是地球椭球体上的坐标,用经纬度表示).但是当需要计算距离.面积等属性的时候,坐标点的单位必须是长度单位,这是投影坐标系(投影坐 ...

  6. 【gis技术】arcgis如何新增自定义的中央子午线投影坐标系

    arcgis自带了很多投影坐标系 比如cgcs2000的三度带 六度带等,但是有时候我们的数据是它没有的,比如118度中央子午线投影 如何自定义呢? 定义投影时,选择117后右击->复制并修改 ...

  7. ORACLE SPATIAL介绍

    一. ORACLE SPATIAL 简介 ORACLE SPATIAL 是Oracle 的支持GIS数据存储的空间数据处理系统,是 Oracle 数据库强大的核心特性,包含了用于存储矢量数据类型.栅格 ...

  8. 2020FME博客大赛——解放大脑 经纬度坐标自动重投影至常用投影坐标系

    作者:崔欣 单位:中国石油天然气管道工程有限公司 摘要:非测绘专业以及学艺不精的测绘人员对经纬度.投影带.带号.假东.假北.比例因子.高斯克吕格3度分带投影.高斯克吕格6度分带投影.墨卡托投影.通用横 ...

  9. oracle spatial 论文,oraclespatial在实际应用中的六大功能体现

    oraclespatial在实际应用中的六大功能体现 Oracle Spatial在实际的应用中不但具有传统的GIS所有相关特性,而且Oracle Spatial还具有关系数据库的相关特性,就是这些特 ...

最新文章

  1. iOS 项目中用到的一些开源库和第三方组件
  2. win10 系统安装 服务器失败怎么回事,Win10正式版安装出现问题怎么办
  3. 基于360搜图爬取图片
  4. SpringBoot高级-消息-RabbitMQ安装测试
  5. Debian 9.6.0 + OpenMediaVault 4.x : U盘作系统盘时遇到的问题
  6. c# 联合halcon 基于相关性 模板匹配_机器视觉之halcon入门(5)-字符识别exe生成...
  7. java调用FFmpeg及mencoder转换视频为FLV并截图
  8. ORACLE RAC如何增加节点
  9. 【科研论文】基于HTTP协议的嵌入式远程监控系统的研究
  10. [原创]性能测试工程师试题
  11. (转)江南愤青丨丨监管办法之后,网贷一地鸡毛(2016年)
  12. 智能实验室-全能优化(Guardio) 4.3.0.730
  13. python中的颜色及其编码
  14. Oracle脱库脚本
  15. Excel修改默认分页符(仅仅在特定行后可插入分页符)
  16. 易班自动打卡+钉钉机器人消息提醒
  17. autojs免root脚本引擎开发的QQ空间说说点赞源码
  18. 掌握python机器学习-读书笔记8 (抽样回归算法)
  19. 如何把自己的电脑配置成外网可访问的服务器?
  20. 网狐荣耀6701,6801(系列十)手机端热更新

热门文章

  1. ssm radis mysql_从零开始搭建框架SSM+Redis+Mysql(一)之摘要
  2. 华为鸿蒙运行视频,某游戏在华为鸿蒙运行,被识别成使用安卓模拟器
  3. 华为atn980传输设备_注册开发者超200万!华为HMS加速全球布局,打造全场景智慧体验...
  4. java增加final,Java8增加功能--Effectively final 功能
  5. 属于窄带噪声的是热噪声_时钟201系列: 非相位噪声的情况 (第一篇)
  6. linux 启动脚本sleep后不执行_JMeter多脚本间的启动延时
  7. 5g信号云端服务器,随着5G万物互联的到来,云服务器迎来新机遇
  8. 线性代数--矩阵、向量
  9. C:内存中供用户使用的存储空间
  10. Python Qt GUI设计:QMainWindow、QWidget和QDialog窗口类(基础篇—10)