由于系统前端使用OpenLayers框架,后台数据库使用oracle spatial。大家知道Oracle spatial的SDO_GEOMETRY十分复杂,如果使用期java api ,那就坑爹了,要处理相当多的逻辑和数据类型。今天我有这么一个需求,从前进行多边形查询,我想到了一个好办法,由openlayers构造一个wkt空间串,然后调用SDO_UTIL.FROM_WKTGEOMETRY函数将wkt转为SDO_GEOMETRY,然后再调用SDO_ANYINTERACT进行空间查询,这种方法貌似木有问题,sql如下:select *
  from TBSVRC_RESPUBLISHITEMS t
 where SDO_ANYINTERACT(F_SPATIALEXTENT,SDO_UTIL.from_wktgeometry('POLYGON((80.83422302246095
                                                          20.518481140136714,
                                                          120.4135076904297
                                                          20.518481140136714,
                                                          120.4135076904297
                                                          50.314989929199214,
                                                          80.83422302246095
                                                          50.314989929199214,
                                                          80.83422302246095
                                                          20.518481140136714))') )='TRUE'

将sql在数据库中运行,结果报错:传入的sdo_geometry和数据库表sdo_geometry的srid不同,不能进行空间查询。忽然想起WKT可以表达空间数据信息,但是木有SRID信息。一下傻眼了,那怎么办呢?看看SDO_UTIL包的函数,也都木有将SDO_GEOMETRY设置SRID的函数。于是在网上搜索半天,也无解,搜搜oracle spatial官方文档,也是半天无解。我于是想还是好好分析SDO_GEOMETRY吧。嘿,忽然发现桃花源,SDO_GEOMETRY是一个类型,本身也是一个函数。再仔细看看还有构造参数,喔,问题解决了,sql如下:

select *
  from TBSVRC_RESPUBLISHITEMS t
 where SDO_ANYINTERACT(F_SPATIALEXTENT,sdo_geometry('POLYGON((80.83422302246095
                                                          20.518481140136714,
                                                          120.4135076904297
                                                          20.518481140136714,
                                                          120.4135076904297
                                                          50.314989929199214,
                                                          80.83422302246095
                                                          50.314989929199214,
                                                          80.83422302246095
                                                          20.518481140136714))',8307))='TRUE'

oracle spatial 爱死你了!

转载于:https://www.cnblogs.com/telwanggs/p/5252905.html

Oracle 关于WKT构造SDO_GEOMETRY的问题。相关推荐

  1. mysql sdo geometry_Oracle 关于WKT构造SDO_GEOMETRY的问题。详解

    由于系统前端使用OpenLayers框架,后台数据库使用oracle spatial.大家知道Oracle spatial的SDO_GEOMETRY十分复杂,如果使用期java api ,那就坑爹了, ...

  2. oracle输出wkt,WKT、WKB

    对于这两个概念的解释,首先了解一下SQL/MM.SQL/MM是ISO/IEC针对"文本.时空.静态图片和数据挖掘"的国际标准,SQL/MM为定义地理几何体而定义了WKT和WKB格式 ...

  3. oracle spatial java 类库,[ Oracle Spatial 系列 ] 之一 SDO_Geometry详细说明(ZZ)

    在ArcGIS中通过SDE存储空间数据到Oracle中有多种存储方式,分别有:二进制Long Raw .ESRI的ST_Geometry以及基于Oracle Spatial的SDO_Geometry等 ...

  4. Oracle Spatial-元数据及SDO_GEOMETRY

    一.空间表的元数据 将表的SDO_GEOMETRY列的所有对象作为一个空间层.Spatial需要对所有空间对象进行验证.创建索引和查询.此时需要为图层指定适当的元数据,该数据包含如下信息:维度.维度边 ...

  5. oracle查询元数据,Oracle Spatial-元数据及SDO_GEOMETRY

    一.空间表的元数据 将表的SDO_GEOMETRY列的所有对象作为一个空间层.Spatial需要对所有空间对象进行验证.创建索引和查询.此时需要为图层指定适当的元数据,该数据包含如下信息:维度.维度边 ...

  6. oracle failovermode,[WK-T]ORACLE 10G 配置故障转移(Failover)

    批注:查询结果中如果是NONE,说明这个连接没有使用TAF:如果和客户端tnsnames.ora配置中的相同,说明使用了TAF. 三.Service-Side TAF Service-Side TAF ...

  7. oracle 经纬度的数据类型,4.2 SDO_GEOMETRY类型、属性和值

    图4-4世界地图的例子,国家的形状和之间的距离都发生了扭曲 怎样才能在没有错误和扭曲的情况下,表示地球表面上的位置呢?在好几个世纪里,这对于很多的地理学家.数学家和发明家都是一个挑战.有好几本书都对这 ...

  8. Oracle Spatial中SDO_Geometry说明

    Oracle Spatial中SDO_Geometry说明 在ArcGIS中通过SDE存储空间数据到Oracle中有多种存储方式,分别有:二进制Long Raw .ESRI的ST_Geometry以及 ...

  9. Oracle Spatial中SDO_Geometry详细说明

    转自:https://blog.csdn.net/u010865734/article/details/74526451 在ArcGIS中通过SDE存储空间数据到Oracle中有多种存储方式,分别有: ...

最新文章

  1. SQL Server 执行计划缓存
  2. git仓库删除文件夹/文件
  3. html设置标签上下居中,html 标签内部元素上下居中
  4. 19岁「天才少年」自制CPU!1200个晶体管,纯手工打造
  5. poj 2398 Toy Storage (计算几何,判断点和线段关系)
  6. WSS学习(一)---简单部署图
  7. SQL Server 2005新特性之使用with关键字解决递归父子关系
  8. mysql 全文索引 权重_MySQL中的全文索引
  9. 类的定义与抽取 java 1615134563
  10. 数据挖掘_wget整站下载
  11. 如何选举根端口,指定端口,阻塞端口
  12. Bailian3237 鸡兔同笼【入门】
  13. wxpython 基本的控件 (文本)
  14. AV1:比HEVC/H.265更有效率的视频编码格式?
  15. 使用 xrdp 远程桌面连接 RVBoards D1 哪吒开发板的桌面系统 lxde
  16. bootstrap为什么不直接使用.btn-default而要使用.btn.btn-default实现同样的效果?
  17. 在linux前台和后台运行程序
  18. ip-guard如何设置禁止网页版微信
  19. PatchMatch分析
  20. 详解手游平台搭建需要哪些条件?需要注意什么?

热门文章

  1. JDK1.8 HashSet
  2. 一直跳出来 visual_六天时间排出来肾结石,这种经历再也不要了
  3. (01)FPGA时序分析概念
  4. (5)FPGA面试题同步电路和异步电路
  5. 如何用python爬取公众号文章搜狗微信搜索_python抓取搜狗微信公众号文章
  6. java实现浏览器ui中的收藏夹_谷歌改进Google Chrome浏览器中的PDF浏览器 带来全新UI...
  7. Ubuntu 18.4 镜像
  8. input子系统分析二
  9. S3C2440裸奔篇之MMU
  10. 北京工业大学c语言期末考试题,北京工业大学C语言部分练习答案.docx