当前位置: 首页 > 编程日记 > 正文

Oracle Spatial构建自定义投影坐标系

之前项目换过服务器,移植数据库时候并没有正确完整的移植自定义的投影坐标系,结果就报出莫名其妙的一些错误,比如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

相关文章:

php.ini 中开启短标签

控制参数&#xff1a; short_open_tag On如果设置为Off&#xff0c;则不能正常解析类似于这样形式的php文件&#xff1a;<?phpinfo()?>而只能解析<?phpphpinfo()?>这样形式的php文件所以要想php支持短标签&#xff0c;需要我们把short_open_tag 设置为On. 本…

参加UI培训就业多长时间

​ UI设计在近几年的发展前景是非常好的&#xff0c;越来越多的人都想要学习UI设计&#xff0c;目前大家比较想了解的是参加UI培训就业多长时间?来看看下面的详细介绍。 参加UI培训就业多长时间? 如今市面上的UI设计培训机构很多&#xff0c;选择一个口碑好靠谱的培训机构学习…

数据结构与算法:15 树

15 树 知识结构&#xff1a; 1. 树的基本概念与术语 1.1 树的定义 树是N(N≥0)N(N \geq 0)N(N≥0)个结点组成的有穷集合 &#xff0c;该集合具有如下特征&#xff1a; &#xff08;1&#xff09;除N0N0N0的树外&#xff0c;有且仅有一个特定的称为根的结点。 &#xff08;…

【as3】键盘事件

在AS3中&#xff0c;键盘事件是由KeyboardEvent类来处理的&#xff0c;属于flash.events包里面&#xff0c;有两种类型的键盘事件&#xff1a;KeyboardEvent.KEY_DOWN 和 KeyboardEvent.KEY_UP&#xff0c;对于键的代码获得我们通过keyCode这个属性 其实键盘事件使用起来还是相…

在后台代码中引入XAML的方法

本文将介绍三种方法用于在后台代码中动态加载XAML&#xff0c;其中有两种方法是加载已存在的XAML文件&#xff0c;一种方法是将包含XAML代码的字符串转换为WPF的对象。 这些是我在编写RegeX时获得的经验&#xff0c;它们将会给WPF程序带来更多的灵活性。 一、在资源字典中载入项…

JavaScript面向对象怎样删除标签页?

单击小标签右上角的按钮可D头删除标签页。其开发思路是&#xff0c;为“x”元素绑定单击事件&#xff0c;事件触发后&#xff0c;通过父元素1i获取索弓引值&#xff0c;然后用这个索引值将对应的li和section删除&#xff0c;并在删除后更新标签页的选中效电下面我们们就开始进行…

数据结构与算法:16 Leetcode同步练习(六)

Leetcode同步练习&#xff08;六&#xff09; 目录 题目01&#xff1a;相同的树题目02&#xff1a;对称二叉树题目03&#xff1a;二叉树的最大深度题目04&#xff1a; Pow(x, n)题目05&#xff1a;子集题目06&#xff1a;格雷编码题目07&#xff1a;二叉树的最近公共祖先题目…

Apache启动时报Could not reliably determine the server's fully qualified domain name

在系统启动时apache&#xff0c;没有启动起来&#xff0c;查看“事件查看器”发现报一些错误&#xff1a; The Apache service named reported the following error:>>> httpd.exe: Could not reliably determine the servers fully qualified domain name, using 19…

Windows Phone SDK update for Windows Phone 7.8

下载&#xff1a;http://www.microsoft.com/en-us/download/details.aspx?id36474 (在线安装) http://kuai.xunlei.com/d/cHbJCAIX4wBNVgFR5aa (离线下载 全语言 5.5G....) MS博客介绍&#xff1a;http://blogs.windows.com/windows_phone/b/wpdev/archive/2013/01/22/now-a…

作为一名合格的前端开发工程师需要会哪些

作为一名合格的前端开发工程师需要会哪些?web前端要学习的内容有很多&#xff0c;想要成为一名合格的web前端工程师&#xff0c;综合实力是要非常强的&#xff0c;来看看下面的详细介绍吧。 作为一名合格的前端开发工程师需要会哪些?前端开发工程师不仅要掌握基本的前端开发技…

memcached部署

第1章 memcached 1 memcached前言 1.1 memcached诞生的原因 2003年诞生了memcached Web1.0 2005以前 企业提供内容为主。 Web2.02005-2012 企业只提供平台&#xff0c;用户参与上传下载内容。 memcached 内存缓存软件&#xff0c;内存比磁盘快。 传统场景中&#xff0c;多数…

线性代数:第二章 矩阵及其运算

本讲义是自己上课所用幻灯片&#xff0c;里面没有详细的推导过程&#xff08;笔者板书推导&#xff09;只以大纲的方式来展示课上的内容&#xff0c;以方便大家下来复习。 本章主要介绍有关矩阵的知识&#xff0c;主要包括矩阵的基本运算&#xff08;加法、数乘、乘法、乘幂、…

sdut 2401 最大矩形面积

1http://acm.sdut.edu.cn/sdutoj/problem.php?actionshowproblem&problemid2401 /*2 最大矩形面积&#xff0c;把边界点加上3 从左往右 处理一遍&#xff1b;4 再从上往下处理一遍&#xff1b;5 */6 7 #include<stdio.h>8 #define maxn 200009 #include<cmath>…

Python中怎样改变集合之间的关系?

Python中怎样改变集合之间的关系?数学中&#xff0c;两个集合关系的常见操作包括&#xff1a;交集、并集、差集、补集。设A&#xff0c;B是两个集合&#xff0c;集合关系的操作介绍如下&#xff1a; 交集是指属于集合A且属于集合B的元素所组成的集合&#xff0c; 并集是指集合…

数据结构与算法:17 图

17 图 知识结构&#xff1a; 1. 图的基本概念与术语 1.1 图的定义 图由顶点集和边集组成&#xff0c;记为G(V,E)G(V,E)G(V,E)。 顶点集&#xff1a;顶点的有穷非空集合&#xff0c;记为V(G)V(G)V(G)。边集&#xff1a;顶点偶对的有穷集合&#xff0c;记为E(G)E(G)E(G) 。 …

云计算安全:技术与应用

云计算安全&#xff1a;技术与应用中国电信网络安全实验室 编著ISBN 978-7-121-14409-72012年1月出版定价&#xff1a;59.00元16开236页宣传语&#xff1a;全面了解云计算安全风险、安全防护手段的佳作&#xff01;内 容 简 介随着云计算的兴起&#xff0c;安全成为云计算能否顺…

再谈HOST文件

前几天弄了一个关于禁止打开某个网站的文章后&#xff0c;觉得这个HOST文件真的挺有意思的。并且也总是想把自己对它新的理解写下来&#xff08;也许大家都明白了&#xff09;以下是HOST文件的内容&#xff1a;# Copyright (c) 1993-1999 Microsoft Corp.## This is a sample H…

PMP®考试是什么机构

项目管理对于很多职场中的人来说是以后要发展的一个方向&#xff0c;随着各职业内卷也越来越严重&#xff0c;pmp认证引起了大家的关注&#xff0c;有朋友问&#xff1a;PMP考试是什么机构?下面我们给大家介绍一下。 PMP考试是什么机构?PMP考试认证在我国大陆地区需要三方机构…

技术图文:03 结构型设计模式(上)

结构型设计模式&#xff08;上&#xff09; 本教程主要介绍一系列用于如何将现有类或对象组合在一起形成更加强大结构的经验总结。 知识结构&#xff1a; 享元模式 – 实现对象的复用 Sunny 软件公司欲开发一个围棋软件&#xff0c;其界面效果如下图所示&#xff1a; 图2 围…

Linux抓包工具tcpdump详解

原文链接 tcpdump是一个用于截取网络分组&#xff0c;并输出分组内容的工具&#xff0c;简单说就是数据包抓包工具。tcpdump凭借强大的功能和灵活的截取策略&#xff0c;使其成为Linux系统下用于网络分析和问题排查的首选工具。 tcpdump提供了源代码&#xff0c;公开了接口&…

学习笔记TF065:TensorFlowOnSpark

2019独角兽企业重金招聘Python工程师标准>>> Hadoop生态大数据系统分为Yam、 HDFS、MapReduce计算框架。TensorFlow分布式相当于MapReduce计算框架&#xff0c;Kubernetes相当于Yam调度系统。TensorFlowOnSpark&#xff0c;利用远程直接内存访问(Remote Direct Memo…

HTML5培训好不好

HTML5培训好不好?这个问题&#xff0c;要看你选择的培训机构&#xff0c;想要学习HTML5技术&#xff0c;靠谱的培训机构非常重要&#xff0c;下面我们就来看看详细的介绍吧。 HTML5培训好不好?从前端开发的基础出发&#xff0c;学习使用HTML&#xff0c;CSS&#xff0c;JavaS…

技术图文:03 结构型设计模式(下)

结构型设计模式&#xff08;下&#xff09; 本教程主要介绍一系列用于如何将现有类或对象组合在一起形成更加强大结构的经验总结。 知识结构&#xff1a; 组合模式 – 树形结构的处理 Sunny 软件公司欲开发一个杀毒&#xff08;AntiVirus&#xff09;软件&#xff0c;该软件…

程序员必知8大排序3大查找(三)

前两篇 《程序员必知8大排序3大查找&#xff08;一&#xff09;》 《程序员必知8大排序3大查找&#xff08;二&#xff09;》 三种查找算法:顺序查找&#xff0c;二分法查找&#xff08;折半查找&#xff09;&#xff0c;分块查找&#xff0c;散列表&#xff08;以后谈&#xf…

MongoDB给数据库创建用户

转自http://www.imooc.com/article/18439 一.先以非授权的模式启动MongoDB非授权&#xff1a; linux/Mac : mongod -f /mongodb/etc/mongo.confwindows : mongod --config c:\mongodb\etc\mongo.conf 或者 net start mongodb &#xff08;前提是mongo安装到了服务里面&#xff…

如何挑选一家好的软件测试培训机构

随着智能时代的发展&#xff0c;我们的手机APP等各种软件都变得越来越复杂化、规模化&#xff0c;软件测试这一步骤是必不可少的&#xff0c;这也造就了这个行业的兴起&#xff0c;越来越多的人想要学习软件测试技术&#xff0c;想要知道如何挑选一家好的软件测试培训机构?来看…

POJ 3177 判决素数个数

时间限制: 1000ms内存限制:65536kB描述输入两个整数X和Y&#xff0c;输出两者之间的素数个数&#xff08;包括X和Y&#xff09;。输入两个整数X和Y&#xff0c;X和Y的大小任意。输出输出一个整数&#xff0c;结果可以是0&#xff0c;或大于0的整数。样例输入1 100样例输出25&am…

数据结构与算法:22 精选练习50

精选练习50 马上就要期末考试或者考研了。为了大家复习的方便&#xff0c;我精选了有关数据结构与算法的50道选择题&#xff0c;大家可以抽空练习一下。公众号后台回复“答案”可以获取该50道题目的答案。 01、数据在计算机中的表示称为数据的______。 &#xff08;A&#x…

极速理解设计模式系列:11.单例模式(Singleton Pattern)

单例模式&#xff1a;确保某一个类只有一个实例&#xff0c;而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 三要点&#xff1a; 一、单例类只能有一个实例 二、单例类必须自行创建自身实例 三、单例类自行向整个系统提供实例 类图&#xff1a; 应用场景&#xf…

参加web前端培训要学哪些知识

IT行业&#xff0c;web前端技术是比较吃香的&#xff0c;也是工资待遇非常高的行业之一&#xff0c;如果想要做一名合格的web前端工程师&#xff0c;系统学习是非常重要的&#xff0c;那么参加web前端培训要学哪些知识呢?来看看下面的详细介绍。 参加web前端培训要学哪些知识?…