`
swordinhand
  • 浏览: 312943 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle Spatial的简单应用

阅读更多
05年的时候就用过这个东西,不过当时完成了项目就了事,没把一些操作记录下来,这两天又用了一下,记录一下一个简单应用的操作步骤吧。
--建立测试表
create table test_geo (id number primary key, name varchar2(32), shape mdsys.sdo_geometry);


--插入metadata
insert into user_sdo_geom_metadata
  (table_name, COLUMN_NAME, DIMINFO, SRID)
values
  ('test_geo',
   'SHAPE',
   MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X',
                                             -180.000000000,
                                             180.000000000,
                                             0.500000000),
                       MDSYS.SDO_DIM_ELEMENT('Y',
                                             -90.000000000,
                                             90.000000000,
                                             0.500000000)),
   8307);

--建立索引
CREATE INDEX test_geo_shape_idx ON test_geo(shape)
INDEXTYPE IS MDSYS.SPATIAL_INDEX;


--插入数据
--这是一个矩形
insert into test_geo
  (id, name, shape)
values
  (2,
   'test_area_2',
   mdsys.sdo_geometry(2003, 
                      8307, 
                      null,
                      mdsys.sdo_elem_info_array(1, 1003, 1),
                      mdsys.SDO_ORDINATE_array(118, 32, 119, 32, 119,33, 118,33, 118,32)));

--这是一个不规则多边形
insert into test_geo
  (id, name, shape)
values
  (3,
   'test_area_3',
   mdsys.sdo_geometry(2003, 
                      8307, 
                      null,
                      mdsys.sdo_elem_info_array(1, 1003, 1),
                      mdsys.SDO_ORDINATE_array(1,3, 2,2, 3,3, 4,2, 3,1, 2,1, 0,2, 1,3)));



--执行查询
--这个能查询到test_area_2
select *
  from test_geo t
 where SDO_RELATE(t.shape,
                  MDSYS.Sdo_Geometry(2001,
                                     8307,
                                     MDSYS.Sdo_Point_Type(118.5, 32.5, null),
                                     null,
                                     null),
                  'mask=ANYINTERACT querytype=WINDOW') = 'TRUE';


--这个能查询到test_area_3,说明落在地图边界上的点也是可以查询的
--替换查询条件为2,2可查到,2,1.5可查到,2,2.5查不到
select *
  from test_geo t
 where SDO_RELATE(t.shape,
                  MDSYS.Sdo_Geometry(2001,
                                     8307,
                                     MDSYS.Sdo_Point_Type(1.5, 2.5, null),
                                     null,
                                     null),
                  'mask=ANYINTERACT querytype=WINDOW') = 'TRUE';




还有一点疑惑写在下面
我最早接触到spatial的时候,地图数据是通过oracle的shp2sdo这个工具,从shp格式的地图里导入的,那时候做查询的时候,查询条件可以用MDSYS.Sdo_Geometry(2003, 8307,
   MDSYS.Sdo_Point_Type(1.5, 2.5, null),  null, null), 但是现在自己插入的数据,如果第一个参数还用2003就会报一个ora-13031异常,必须改成2001才能正常查询,不知道是为什么。
0
0
分享到:
评论

相关推荐

    Oracle Spatial

    在本教学讲义中,我们将深入探讨Oracle Spatial的核心概念、功能以及如何在实际应用中有效地利用这些特性。 首先,Oracle Spatial提供了数据模型,包括点、线、面等基本空间对象,以及更复杂的空间关系,如覆盖、...

    Oracle Spatial 和MapViewer 新特性

    - **SDO_GEOMETRY 中的三维数据表示**:Oracle Spatial 11g 支持使用 SDO_GEOMETRY 类型来表示三维数据,如点、线、简单表面、合成表面、简单实体以及合成实体等。 ##### 1.2 Web 服务增强 - **Web 地理特征服务 ...

    OracleSpatial_OCI-code\code

    通过深入研究 "OracleSpatial_OCI-code" 中的代码,开发者可以了解到如何利用 OCI 接口来操作 Oracle Spatial 中的空间数据,这对于开发地理信息系统(GIS)应用程序或进行空间数据分析是非常有价值的。这个压缩包中...

    oracle spatial

    oracle的简单应用,对于初学者来说帮助很大。大学课堂教程

    Oracle Spatial User's Guide and Reference

    本指南旨在为开发者提供有关如何使用 Oracle Spatial 和 Oracle Locator 来开发空间应用程序以及如何存储和索引空间数据的详细指导。 #### 二、Oracle Spatial 的功能 - **空间数据管理**:支持多维空间数据的高效...

    ORACLE SPATIAL 笔记(完整版)

    综上所述,Oracle Spatial 提供了一整套工具和技术,使得处理空间数据变得简单而高效。通过对 SDO_GEOMETRY 数据类型的深入理解以及合理地创建空间索引,可以极大地提高空间查询的性能,满足 GIS 和 CAD/CAM 领域的...

    mapxtreme for java manager 测试oracle spatial 连接简单图解

    本文旨在通过一个简单的步骤图解来指导用户如何使用MapXtreme for Java Manager来测试与Oracle Spatial数据库的连接。 #### 二、准备工作 在进行Oracle Spatial连接测试之前,需要确保以下准备工作已经完成: 1. ...

    mapxtreme oraclespatial 数据导入简单图解

    总的来说,MapXtreme与Oracle Spatial的结合为用户提供了一个强大的空间数据管理和应用开发环境。通过EasyLoader进行数据导入,然后利用MapCatalog进行数据管理和展示,可以高效地处理和利用地理空间信息。在进行这...

    Oracle Spatial 中的SDO_GEOMETRY类型

    Oracle Spatial 中的 SDO_GEOMETRY 类型详解 Oracle Spatial 中的 SDO_GEOMETRY 类型是对空间对象的几何描述,定义了空间对象的形状和位置。SDO_GEOMETRY 类型是 Oracle Spatial 的核心数据类型,用于存储和处理...

    Oracle Spatial讲义

    2. OO4O(Oracle Objects for OLE):基于 OLE 技术,允许使用 Visual Basic 或其他支持 OLE 的语言快速访问数据库,适合快速开发和简单应用。 Oracle Spatial 还提供了一系列的空间查询和分析函数,如距离查询、...

    oracle spatial database introduction (english version)

    为了促进不同系统之间的互操作性,Oracle Spatial 遵循了开放地理空间联盟(OGC)的简单特征规范和ISO/IEC的SQL/MM标准。这些标准定义了存储、检索和处理空间数据的SQL扩展。例如,SQL/MM第三部分专门针对空间数据的...

    mapx与oraclespatial

    - **简单空间分析**: 在.NET环境下,基于MapX和Oracle 10g Spatial开发的空间数据库管理系统中,实现了简单的空间分析功能,例如查询特定区域内的地理特征、计算不同地理实体之间的距离等。 #### 三、总结 MapX与...

    Oracle Spatial10g在多源矿区环境数据库一体化管理中的应用.pdf

    此外,Oracle Spatial 10g 的开放性访问接口使得数据集成和互操作变得简单。它提供标准的OGC(开放地理空间联盟)兼容接口,允许不同系统和应用程序之间共享和交换数据,这对于分布式、开放的矿区环境信息服务至关...

    基于Oracle Spatial和OO4O的空间数据存取研究.pdf

    此外,Oracle Spatial还支持多种空间数据标准,如简单特征Access(SFSQL),兼容OGC(开放地理空间联盟)的标准,增强了与其他GIS系统的互操作性。 Oracle数据库提供了两种主要的接口来访问和操作空间数据。一是...

    Oracle.Spatial.9.2.UserGuide

    Oracle Spatial是Oracle数据库的一个扩展,它提供了强大的空间数据处理、分析和查询能力,适用于地理信息系统(GIS)和位置感知应用。 在Oracle Spatial 9.2版本中,用户可以期待以下关键知识点: 1. **空间数据...

    Oracle Spatial空间数据在ArcSDE中的图层注册.pdf

    Oracle Spatial是Oracle数据库的一个扩展组件,专门用于处理和管理地理空间数据。它提供了全面的空间数据存储、查询、分析和管理功能,使得Oracle数据库能够支持地理信息系统(GIS)的应用。许多空间数据管理系统,...

    基于Oracle Spatial的北京城市空间要素数据库实现.pdf

    同时,还需要根据业务需求选择合适的空间数据模型,如简单特征(SFCGAL)、几何网络模型等,以适应不同的应用场景。 【参考文献与专业指导】对于这样的项目实施,参考文献和专业指导至关重要,它们能提供理论基础和...

Global site tag (gtag.js) - Google Analytics