|
一、Oracle Spatial简介
二、测试表的建立与应用(点类型)
-- 创建测试用表 CREATE TABLE "SPATIALTEST" ( )LOGGING; |
-- 创建主键约束 ALTER TABLE "SPATIALTEST" |
-- 根据用户表填写空间元数据 INSERT INTO USER_SDO_GEOM_METADATA |
-- 建立空间索引 CREATE INDEX SPATIAL_IDX |
-- 导入测试数据
INSERT INTO "SPATIALTEST" --其他 INSERT INTO cola_markets VALUES( |
-- 属性信息查询 SQL> select location from spatialtest; LOCATION(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES) SQL> select s.location.SDO_POINT.x langtitude from spatialtest s; LANGTITUDE |
-- 空间分析查询(113.2359818,23.16937253)周边十公里信息5条 SELECT FROM ( WHERE ; |
-- 空间分析查询(113.2359818,23.16937253)附近的5条信息 SELECT FROM WHERE ; |
-- Return the topological difference of two geometries. SELECT SDO_GEOM.SDO_DIFFERENCE(c_a.shape, m.diminfo, c_c.shape, m.diminfo) |
三、MDYSYS.SDO_GEOMETRY结构
CREATE TYPE SDO_GEOMETRY AS OBJECT(
|
MDSYS.SDO_GEOMETRY <--> OCCI 对照模型:
四、Oracle Spatial 几个自定义函数(转帖)
--------------------------------------
|
|
|
|
|
|
create or replace function To_Geomerty_Point(x in number,y in number ) return MDSYS.SDO_GEOMETRY is begin Result := MDSYS.SDO_GEOMETRY(2001, return(Result); |
--------------------------------------------------------------------------
-------------------查询及测试语句---------------------------------------
--求线路的长度 select * from tg_routev2 select a.geoloc.SDO_ORDINATES from tgs_route a select GetStartNodeXY(a.geoloc.SDO_ORDINATES) from tgs_route a select GetEndNodeXY(a.geoloc.SDO_ORDINATES) from tgs_route a |
--计算线路的起始点和终止点坐标 |
--更新tg_routev2 中的线起始点 终止点坐标 update (select a.*,b.* from tg_routev2 a,routeNodeXY b |
select sdo_geom.sdo_distance( from dual |
--node1距离物流中心的 --node2距离物流中心的 |