`

oracle spatial 空间数据学习

 
阅读更多

最近项目使用 空间数据库 oracle spatial

 

--创建测试用表
 CREATE TABLE SPATIALTEST (
 "ID" VARCHAR2(20) NOT NULL,
 "NAME" VARCHAR2(100),
 "ADDRESS" VARCHAR2(200),
 "TELEPHONE" VARCHAR2(50),
 "LOCATION" "MDSYS"."SDO_GEOMETRY"
 )
 --创建主键约束
 ALTER TABLE "SPATIALTEST"
 ADD CONSTRAINT "PK_SPATIAL" PRIMARY KEY("ID");
--根据用户表填写空间元数据,创建了点信息,与点信息经纬度最大值,与最小值,与误差范围
 INSERT INTO USER_SDO_GEOM_METADATA
 VALUES(
 'SPATIALTEST',
 'location',
 MDSYS.SDO_DIM_ARRAY(
 MDSYS.SDO_DIM_ELEMENT('Longitude',-180,180,10),---Longitude维最小,最大值和容忍度。
 MDSYS.SDO_DIM_ELEMENT('Latitude',-90,90,10)-----Latitude维最小,最大值和容忍度。
 ),
 4326
 );
--建立空间索引 关键 假如不创建空间索引,速度很慢
CREATE INDEX SPATIAL_IDX ON SPATIALTEST(location) INDEXTYPE IS MDSYS.SPATIAL_INDEX
 
--导入测试数据
--1
INSERT INTO SPATIALTEST
VALUES
  ('1',
   '中油瑞飞',
   '北京市歌华大厦',
   '010-123456',
   MDSYS.SDO_GEOMETRY(2001,--定义的点的代码
                      4326,--定义的坐标系统代码
                      MDSYS.SDO_POINT_TYPE(113.3293658, 23.14338586, 0),--定义了点的坐标值
                      NULL,
                      NULL));
--导入测试数据
--2
INSERT INTO SPATIALTEST
VALUES
  ('2',
   '山东',
   '山东省日照市东港区',
   '010-123456',
   MDSYS.SDO_GEOMETRY(2001,--定义的点的代码
                      4326,
                      MDSYS.SDO_POINT_TYPE(113.2932474, 23.11883515, 0),
                      NULL,
                      NULL));
-- 关系查询
select location from spatialtest;
select s.location.SDO_POINT.x langtitude from spatialtest s;

--空间分析查询(113.2359818,23.16937253)周边十公里信息5条
 SELECT B.id id, B.name name, B.dist dist
   FROM (SELECT A.id id,
                A.name name,
                SDO_GEOM.SDO_DISTANCE(A.location,
                                      MDSYS.SDO_GEOMETRY(2001,
                                                         4326,
                                                         MDSYS.SDO_POINT_TYPE(113.2359818,
                                                                              23.16937253,
                                                                              0),
                                                         NULL,
                                                         NULL),
                                      1) dist
           FROM spatialtest A
          WHERE SDO_WITHIN_DISTANCE(A.LOCATION,
                                    MDSYS.SDO_GEOMETRY(2001,
                                                       4326,
                                                       MDSYS.SDO_POINT_TYPE(113.2359818,
                                                                            23.16937253,
                                                                            0),
                                                       NULL,
                                                       NULL),
                                    'distance=10000') = 'TRUE'
          ORDER BY A.name) B
  WHERE ROWNUM <= 5;
 -- 空间分析查询(113.2359818,23.16937253)附近的5条信息
 SELECT A.id id,
        A.name name,
        A.location.SDO_POINT.x langtitude,
        A.location.SDO_POINT.y latitude,
        MDSYS.SDO_NN_DISTANCE(1) distance
   FROM spatialtest A
  WHERE SDO_NN(A.LOCATION,
               MDSYS.SDO_GEOMETRY(2001,
                                  4326,
                                  MDSYS.SDO_POINT_TYPE(113.2359818,
                                                       23.16937253,
                                                       0),
                                  null,
                                  null),
               'SDO_NUM_RES=5',
               1) = 'TRUE'
 

 

 

分享到:
评论

相关推荐

    Oracle Spatial空间信息管理:Oracle Database 11g课本所需数据库数据

    《Oracle Spatial空间信息管理:Oracle Database 11g》是世界级Oracle Spatial专家Ravi Kothuri、Albert Godfrind和Euro Beinat自力作,旨在向您提供空间信息管理方面的概念知识和实用技能,帮助您成为该领域的专家...

    Oracle Spatial空间信息管理:Oracle Database 11g_管会生编著_part2

    主要阐述了空间信息管理的主要概念,Oracle Spatial的架构,以及大量用于管理空间数据的函数和操作。详细描述了Oracle Spatial所提供的用于存储、检索、分析和可视化空间信息的工具。《Oracle Spatial空间信息管理:...

    Oracle Spatial与ArcGIS连接

    许多组织正在转向使用Oracle Spatial作为其核心数据库系统,这主要是因为Oracle Spatial能够提供强大的空间数据存储与处理能力。在这一背景下,如何实现ArcGIS与Oracle Spatial的有效集成成为了一个重要的课题。本文...

    xtreme for java连接oracle spatial 空间数据库.doc

    通过以上步骤,开发者可以使用xtreme for Java成功地连接并操作Oracle Spatial空间数据库,实现地理空间数据的存储、检索和分析。这个过程涉及到Java编程、数据库连接管理、SQL查询以及对Oracle Spatial特性的理解和...

    基于Oracle Spatial的矢量空间数据管理机制.pdf

    "基于Oracle Spatial的矢量空间数据管理机制" Oracle Spatial是一种空间数据库管理系统,可以管理和存储矢量空间数据。该系统基于Oracle数据库管理系统,提供了一个对象关系模型来存储和管理空间几何实体。 ...

    Oracle Spatial空间信息管理(英文原版)

    主要阐述了空间信息管理的主要概念,Oracle Spatial的架构,以及大量用于管理空间数据的函数和操作。详细描述了Oracle Spatial所提供的用于存储、检索、分析和可视化空间信息的工具。本书还提供了丰富的样本数据、...

    Oracle Spatial空间索引 解析

    Oracle Spatial是甲骨文公司推出的空间数据管理解决方案,其核心是一组专门针对Oracle数据库中空间元素的SQL模式、函数集以及空间索引机制。Oracle Spatial允许对空间数据进行存储、检索、更新和查询操作,是处理...

    使用Oracle Spatial对ArcSDE中的SDO_GEOMETRY类型数据进行空间操作

    Oracle Spatial 是 Oracle 数据库中的一个空间数据处理组件,用于存储、管理和操作空间数据。ArcSDE 是一个空间数据引擎,用于存储和管理大规模的空间数据。在 Oracle Spatial 中,SDO_GEOMETRY 是一个用于存储空间...

    基于Oracle Spatial空间数据库数据的动态读取.pdf

    基于Oracle Spatial空间数据库数据的动态读取 Oracle Spatial是一种功能强大的空间数据库管理系统,它提供了对空间数据的存储、管理和分析功能。为了实现对Oracle Spatial空间数据库数据的动态读取,需要使用VC++ ...

    基于Oracle Spatial空间数据库的GIS数据管理.pdf

    基于Oracle Spatial空间数据库的GIS数据管理 本文主要介绍了基于Oracle Spatial空间数据库的GIS数据管理。Oracle Spatial是Oracle公司推出的空间数据库组件,具有管理空间数据的能力。 Oracle Spatial在9i版本开始...

    Oracle Spatial用户指南

    Oracle Spatial是Oracle数据库的一个扩展模块,专为处理地理空间数据而设计。它提供了对空间对象的存储、查询、分析和可视化的能力,使得开发者能够构建基于地理位置的应用程序。本用户指南详细介绍了如何有效地利用...

    Oracle Spatial学生指导

    学习Oracle Spatial不仅有助于理解空间数据的存储和处理,还能提升你在GIS项目中的数据管理和分析能力。通过这两卷的深入学习,你将能够熟练掌握Oracle Spatial的基本用法,并能够解决实际项目中的空间数据问题。

    Oracle Spatial9i介绍

    Oracle Spatial9i是Oracle公司推出的用于处理空间数据的强大工具包,它不仅解决了空间数据的存储问题,还提供了丰富的空间查询和分析功能。通过Oracle Spatial9i,GIS开发者能够更加便捷地管理空间数据,并利用...

    Oracle Spatial 拓扑和网络数据模型

    Oracle Spatial 提供了一种强大且灵活的方式来管理空间数据。它不仅支持基本的空间数据类型,还提供了丰富的功能来处理复杂的地理信息,其中包括拓扑数据模型和网络数据模型。这两种模型在地理信息系统(GIS)领域...

    oracle spatial 用户指南

    Oracle Spatial 是Oracle数据库的一个扩展模块,专门用于处理和分析地理空间数据。这个用户指南和参考文档是学习和掌握Oracle Spatial技术的重要资源,尽管它是英文版的。以下是对Oracle Spatial的一些核心知识点的...

    MAPGIS数据向Oracle Spatial空间数据的转换.pdf

    【Oracle Spatial 空间数据转换】 Oracle Spatial 是 Oracle 数据库的一个重要组件,专门用于管理和分析空间数据。它提供了一种高效、灵活的方式来存储、查询和处理地理信息,支持多种空间数据模型,包括对象关系...

    oracle.spatial的jar包

    Oracle Spatial 是 Oracle 数据库的一个组件,专门用于处理和分析地理空间数据。这个组件提供了丰富的功能,包括地理坐标系统的转换、空间查询、空间分析以及地图显示等。在Java开发环境中,Oracle Spatial 提供了...

    Oracle Spatial 官方文档 pdf

    Oracle Spatial 是 Oracle 数据库的一个重要组件,专门用于处理地理空间数据和执行空间分析。这个官方文档是英文版,对于非英语母语者来说可能阅读起来有些困难,但它是理解 Oracle Spatial 功能和操作的关键资源。...

    Oracle_Spatial空间数据库设计打包资料

    本打包资料针对Oracle Spatial空间数据库设计,提供了丰富的学习资源,适合GIS专业学生和对地理信息处理有需求的IT从业者。 一、Oracle Spatial基本概念 1. 空间数据:包括点、线、面等几何对象,以及与之相关的...

    oracle spatial的官方指南

    - **Oracle Spatial** 是Oracle数据库系统中一个用于管理和处理地理空间数据的功能组件。 - 它能够帮助用户有效地存储、索引及管理地理空间数据,并支持在地理信息系统(GIS)应用中的高效查询和操作。 ### 二、...

Global site tag (gtag.js) - Google Analytics