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才能正常查询,不知道是为什么。
分享到:
相关推荐
[Packt Publishing] Oracle Spatial 应用扩展 (英文版) [Packt Publishing] Applying and Extending Oracle Spatial (E-Book) ☆ 图书概要:☆ Overview Understand how to develop Oracle Spatial data models ...
主要将了ArcGIS与Oracle Spatial之间的连接问题,解决了ArcGIS对于Oracle Spatial数据的读写问题
Oracle Spatial 11g GeoRaster Oracle Spatial 11g GeoRaster Oracle Spatial 11g GeoRaster Oracle Spatial 11g GeoRaster
由于大于60M,分两部分上传。 《Oracle Spatial空间信息管理:Oracle...《Oracle Spatial空间信息管理:Oracle Database 11g》还提供了丰富的样本数据、例子和提示,以帮助读者方便地将上述概念和工具结合到实际应用中。
oracle spatial 介绍,应用,案例,实用说明等相关介绍
《Oracle Spatial空间信息管理:Oracle Database 11g》是世界级...《Oracle Spatial空间信息管理:Oracle Database 11g》还提供了丰富的样本数据、例子和提示,以帮助读者方便地将上述概念和工具结合到实际应用中。
oracle spatial 空间 笔记
本书是世界级Oracle Spatial专家Ravi Kothuri、Albert Godfrind和Euro Beinat的力作,旨在向您提供空间信息管理方面的概念知识和实用技能,帮助您成为该领域的专家。书中涵盖了Oracle数据库中空间信息管理的所有内容...
oracle的简单应用,对于初学者来说帮助很大。大学课堂教程
学习Oracle Spatial的入门书
介绍了如何使用Oracle Spatial操作通过ArcSDE存储到Oracle数据库中的空间数据
Pro Oracle Spatial for Oracle Database 11g shows how to take advantage of Oracle Database's built-in feature set for working with location-based data. A great deal of the information used in business ...
Oracle Spatial9i 相关信息,GIS相关开发人员有必要了解!
Oracle Spatial是甲骨文公司针对空间数据管理的一组插件, 其针对存储在Oracle Spatial数据库中空间元素提供了一种SQL 模式和便于存储、检索、更新、查询的函数集。它由以下组件构 成:一种描述几何数据存储、语法、...
oracle spatial 用户指南和参考,对于想了解oralce spatial技术有帮助,不过是英文文档。
Oracle Spatial Developer's Guide
Oracle Spatial用户指南,超详细和全面。想从事空间数据库开发的可以看看.
Oracle Spatial 和MapViewer 新特性
空间数据库课件:第四讲 Oracle 及Oracle Spatial.ppt
Oracle Spatial 官方文档 pdf 英文版 鸟语不好的看起来要费劲点