1.获取一个空间要素的点数:
create or replace function get_num_points (g SDO_GEOMETRY)
RETURN NUMBER
IS
BEGIN
RETURN g.SDO_ORDINATES.COUNT()/SUBSTR(g.SDO_GTYPE,1,1);
END;
2.获取一个空间要素某点的经度或纬度:
--参数type 值1为经度,2为纬度。
--参数point_number为空间要素中点的序列号。
CREATE OR REPLACE FUNCTION get_point(geom sdo_geometry, type NUMBER DEFAULT 1, point_number NUMBER DEFAULT 1)
RETURN NUMBER
IS
d NUMBER;
p NUMBER;
px NUMBER;
py NUMBER;
BEGIN
d:=SUBSTR(geom.SDO_GTYPE,1,1);
IF point_number<1
OR point_number>geom.SDO_ORDINATES.COUNT()/d THEN
RETURN NULL;
END IF;
P:=(point_number-1)*d+1;
px := geom.SDO_ORDINATES(p);
py := geom.SDO_ORDINATES(p+1);
IF type = 1 THEN
RETURN px;
END IF;
IF type = 2 THEN
RETURN py;
END IF;
END;
3.获取某表中的所有经纬度:
create or replace procedure proce_varray_0 as
v_x number; --经度
v_y number; --纬度
vv_count number; --空间对象数
v_count number; --每个空间对象的点数
v_name varchar2(40);
begin
DBMS_OUTPUT.ENABLE (200000000000000000000);
select count(*) into vv_count from CHINA_SHENG t;
--for n in 1..1
--loop
select tt.num INTO v_count from (select GET_NUM_POINTS(t.geometry) num,rownum r from CHINA_SHENG t where t.rname='天津市')tt ;--tt.r=n;--WHERE FNODE_=929;
for i in 1..v_count --1..v_count/3,v_count/3+1..v_count/3*2,v_count/3*2+1..v_count
loop
--select num INTO v_COUNT from (select GET_NUM_POINTS(t.geometry) num,rownum from CHINA_GUOJIE t)tt where rownum=n;--WHERE FNODE_=929;
select tt.px,tt.py,tt.rname INTO v_x, v_y,v_name from (select GET_POINT(t.geometry,1,i) px,GET_POINT(t.geometry,2,i) py,rname,rownum r from CHINA_SHENG_ t where t.rname='天津市')tt ;--where tt.r=n;--WHERE FNODE_=929;
--select tt.py INTO v_y from (select GET_POINT(t.geometry,2,i) py,rownum r from CHINA_SHENG t)tt where tt.r=n;--WHERE FNODE_=929;
--select tt.rname INTO v_name from (select rname,rownum r from CHINA_SHENG t)tt where tt.r=n;--WHERE
dbms_output.put_line(v_x||' '||v_y||' '||v_name);
end loop;
dbms_output.put_line(v_count*2);
--end loop;
end;
分享到:
相关推荐
xtreme for java连接oracle spatial 空间数据库
《Oracle Spatial空间信息管理:Oracle Database 11g》是世界级...《Oracle Spatial空间信息管理:Oracle Database 11g》还提供了丰富的样本数据、例子和提示,以帮助读者方便地将上述概念和工具结合到实际应用中。
基于Oracle Spatial空间数据库数据的动态读取.pdf
Oracle Spatial空间数据在ArcSDE中的图层注册.pdf
MAPGIS数据向Oracle Spatial空间数据的转换.pdf
由于大于60M,分两部分上传。 《Oracle Spatial空间信息管理:Oracle...《Oracle Spatial空间信息管理:Oracle Database 11g》还提供了丰富的样本数据、例子和提示,以帮助读者方便地将上述概念和工具结合到实际应用中。
主要阐述了空间信息管理的主要概念,Oracle Spatial的架构,以及大量用于管理空间数据的函数和操作。详细描述了Oracle Spatial所提供的用于存储、检索、分析和可视化空间信息的工具。本书还提供了丰富的样本数据、...
基于Oracle Spatial空间数据共享系统设计.pdf
Oracle Spatial空间数据操作缺陷及解决方案.pdf
其针对存储在Oracle Spatial数据库中空间元素提供了一种SQL 模式和便于存储、检索、更新、查询的函数集。它由以下组件构 成:一种描述几何数据存储、语法、语义的模式MDSYS;一种空间 索引机制SDO—INDEX;一组实现...
介绍了如何使用Oracle Spatial操作通过ArcSDE存储到Oracle数据库中的空间数据
基于Oracle Spatial的矢量空间数据管理机制.pdf
实现Arc S DE向Oracle9i Spatial空间数据的转换.pdf
NET下基于OO4O核心的Oracle Spatial空间数据互操作.pdf
Oracle_Spatial空间数据库设计的打包资料,课程设计用,GIS专业的一定要看。
ArcGIS Spatial空间分析中文指南
包括Spatial_Analyst_Tutorial pdf教程以及空间分析所需数据
由于大于60M,分两部分上传。 《Oracle Spatial空间信息管理:Oracle ...《Oracle Spatial空间信息管理:Oracle Database 11g》还提供了丰富的样本数据、例子和提示,以帮助读者方便地将上述概念和工具结合到实际应用中。
GIS中基于Oracle Spatial存储空间数据的研究.pdf
本标准定义了一种开放式可扩展的空间三维模型数据格式———Spatial3DModel( S3M),适用于空 间三维模型数据的传输、交换与共享,有助于解决多源空间三维模型数据在不同终端(移动设备、浏览 器、桌面电脑)地理...