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

利用Oracle Spatial求几何对象的长度和面积

阅读更多
http://www.cnblogs.com/clarkzheng/archive/2007/03/17/678532.html

一、求几何对象的长度
格式:
SDO_GEOM.SDO_LENGTH(geom IN MDSYS.SDO_GEOMETRY,dim IN MDSYS.SDO_DIM_ARRAY[,unit IN VARCHAR2]) RETURN NUMBER;


SDO_GEOM.SDO_LENGTH(geom IN MDSYS.SDO_GEOMETRY,tol IN NUMBER[,unit IN VARCHAR2]) RETURN NUMBER;

说明:
返回一个几何对象的长度或周长。
参数说明:
geom.:几何体对象。
dim:与geom相应的维信息数组,通常从xxx_SDO_GEOM_METADATA视图里查询得到。
unit:度量单位。使用带引号的串,形式为unit=值,其值来源于表MDSYS.SDO_DIST_UNITS表中的一个SDO_UNIT值。如果该参数没有指定,则度量的单位使用与数据相关联的单位。
tol:容忍量值。
使用注意
如果输入多边形含有一个或多个洞,则该函数计算外边界的周和所有洞的周长,然后将这些周长进行累加,得到最终的总周长。
如果函数格式使用了tol值,所有几何全必须使用4位的SDO_GTYPE值进行定义。
示例
下例返回表“勘探开发项目”里几何实体周长。SQL语句是返回所有几何体的周长。
select c.xmmc, SDO_GEOM.SDO_LENGTH(c.GEOMETRY2, m.diminfo)

  from 勘探开发项目 c, MDSYS.USER_SDO_GEOM_METADATA m

where m.table_name = '勘探开发项目'

   and m.COLUMN_NAME = 'GEOMETRY2';



只返回几何体“腹部”的周长:
select c.xmmc, SDO_GEOM.SDO_LENGTH(c.GEOMETRY2, m.diminfo)

  from 勘探开发项目 c, MDSYS.USER_SDO_GEOM_METADATA m

where m.table_name = '勘探开发项目'

   and m.COLUMN_NAME = 'GEOMETRY2'

   and c.xmmc = '腹部';



GEOMEDIA显示的结果如下:



二、求几何对象的面积
格式:
SDO_GEOM.SDO_AREA(geom IN MDSYS.SDO_GEOMETRY,dim IN MDSYS.SDO_DIM_ARRAY[,unit IN VARCHAR2]) RETURN NUMBER;

SDO_GEOM. SDO_AREA (geom IN MDSYS.SDO_GEOMETRY,tol IN NUMBER[,unit IN VARCHAR2]) RETURN NUMBER;


说明:
返回两维几何多边形的面积。
参数说明:
geom.:几何体对象。
dim:与geom相应的维信息数组,通常从xxx_SDO_GEOM_METADATA视图里查询得到。
unit:度量单位。使用带引号的串,形式为unit=值,其值来源于表MDSYS.SDO_AREA_UNITS表(例如,unit=SQ_KM)。
如果指定了unit,该值必须来源于表MDSYS.SDO_DIST_UNITS。如果没有指定unit,就使用与几何体相关联的度量维的单位值。对于测地数据,默认的度量单位是平方米。
tol:容忍量值。
使用注意
该函数可以工作于任意多边形,包括带洞的多边形,如果带tol参数,所有几何全必须使用4位的SDO_GTYPE值进行定义。
示例
下例返回表“勘探开发项目”里几何实体面积。SQL语句是返回所有几何体的面积。
select c.xmmc, SDO_GEOM.SDO_AREA(c.GEOMETRY2, m.diminfo)

  from 勘探开发项目 c, MDSYS.USER_SDO_GEOM_METADATA m

where m.table_name = '勘探开发项目'

   and m.COLUMN_NAME = 'GEOMETRY2';


只返回几何体“腹部”的面积:
select c.xmmc, SDO_GEOM.SDO_AREA(c.GEOMETRY2, m.diminfo)

  from 勘探开发项目 c, MDSYS.USER_SDO_GEOM_METADATA m

where m.table_name = '勘探开发项目'

   and m.COLUMN_NAME = 'GEOMETRY2'

   and c.xmmc = '腹部';



GEOMEDIA显示的结果如下:
分享到:
评论

相关推荐

    ArcSDE vs Oracle Spatial

    - **Oracle Spatial**:使用 `SDO_GEOM.SDO_AREA` 和 `SDO_GEOM.SDO_LENGTH` 分别计算几何对象的面积和周长。 - **ArcSDE**:通过 `ST_AREA` 和 `ST_LENGTH` 函数完成面积和长度的测量。 ##### 凸包运算 - **...

    基于OracleSpatial的Shapefile数据存储研究

    本文从介绍传统的空间数据管理方式(即文件管理方式)及其存在的弊端入手,深入解析了Oracle Spatial中的空间数据对象-关系模型和OO4O数据库连接机制,并探讨了Shapefile数据在Oracle Spatial(10g版本)中的存取...

    Oracle Spatial 11g Developer's Guide.pdf

    《Oracle Spatial 11g 开发者指南》是Oracle公司为开发者提供的一本关于如何使用Oracle Spatial和Oracle Locator进行空间数据索引与存储以及开发空间应用的技术手册。本书详细介绍了Oracle Spatial 11g Release 2...

    如何在Oracle8.1.6Spatial上进行编程.pptx

    - **SDO_AREA 和 SDO_LENGTH**:用于计算几何对象的面积和长度/周长。例如,可以更新表格中的面积字段,使用 `SDO_GEOM.SDO_AREA` 函数计算几何对象的面积。 6. **数据保存和索引**: - 数据保存涉及如何持久化...

    Oracle空间字段操作帮助文档

    3. 几何函数和操作:Oracle Spatial提供了丰富的几何函数,可以进行空间数据的各种操作,例如计算几何形状之间的距离、求交点、合并空间数据、计算面积和长度等。 4. 空间查询:开发者可以使用空间操作来查询几何...

    如何在Oracle816 Spatial上编程(PPT 18).pptx

    Oracle 8.1.6 Spatial 是 Oracle 数据库在早期版本中对地理空间数据支持的扩展,它提供了丰富的功能,使得开发者能够处理、存储和查询地理信息。以下是对标题和描述中涉及的知识点的详细说明: 1. **Oracle Spatial...

    ArcSDE和Oracle空间数据库探索

    再者,空间量算和拓扑分析的实现上,ArcSDE利用了一系列ST_开头的函数,如ST_Area、ST_Length等,实现面积、长度、距离等量算,以及ST_Intersection、ST_Difference等函数进行拓扑分析。而Oracle Spatial则依托于SDO...

    基于ODP.NET访问Oracle空间数据.pdf

    MDSYS.SDO_GEOMETRY对象类型包含五个部分:SDO_GTYPE表示几何对象的类型,SDO_SRID描述几何对象的坐标参考系统,SDO_POINT存储点类型的几何对象,SDO_ELEM_INFO是一个可变长度的数组,解释几何对象的坐标如何存储在...

    MAPGIS与Oracle数据库空间数据格式的转换

    通过对MAPGIS明码格式和Oracle Spatial数据库的理解,我们可以更好地实现空间数据的转换和共享。这种转换不仅能够提高数据的可访问性和可用性,还能促进不同GIS系统之间的合作与交流。随着未来技术的进步,数据格式...

    Oracle数据库的空间数据类型[文].pdf

    Oracle Spatial使用`SDO_GEOMETRY`作为核心的空间数据类型,它能够存储点、线、面等多种几何对象。`SDO_GEOMETRY`由五个部分组成: - `SDO_GTYPE`:定义存储对象的类型,如点、线、多边形等。 - `SDO_SRID`:空间...

    spatial database.rar_Spatial Database)_spatial database_空间数据库

    2. **空间数据库管理系统(SDBMS)**:这是支持空间数据存储、查询和分析的软件系统,例如PostGIS(基于PostgreSQL的关系型数据库扩展)、Oracle Spatial、Esri的ArcGIS Server等。 3. **空间索引**:由于空间数据...

    SDE空间SQL使用

    SDE(Spatial Database Engine)是Esri提供的用于管理地理空间数据的组件,它与Oracle数据库结合,允许用户执行复杂的空间查询和分析。 首先,配置Oracle对SDE空间SQL的支持至关重要。这一过程涉及以下三个步骤: ...

    oralce 资料 2

    - **空间关系操作符和函数**:提供了丰富的空间关系操作符,如距离、面积和长度函数,以及用于计算缓冲区的函数,增强了空间数据的分析能力。 - **开放式标准SQL访问**:允许通过标准SQL访问空间特性,降低了学习...

    ArcGIS Engine开发资料

    3. **几何对象与空间操作**:ArcGIS Engine提供了对几何对象(点、线、面)的支持,包括创建、修改、计算面积、长度、距离等空间操作。开发者需要熟悉如何处理这些几何对象以进行空间查询和分析。 4. **投影与坐标...

    空间数据存储机制研究

    目前市场上已经有一些成熟的商业化GIS软件,如ESRI公司的ArcSDE、MapInfo公司的SpatialWare以及Oracle的Oracle Spatial等,它们都提供了全关系型或对象-关系型的数据模型来解决空间数据的存储问题。这些系统不仅能够...

    空间数据库

    连接空间数据库通常涉及使用特定的数据库管理系统(DBMS),如PostGIS(基于PostgreSQL的关系型数据库扩展)、Oracle Spatial、Spatialite(轻量级嵌入式数据库)等。通过ODBC(开放数据库连接)或JDBC(Java数据库...

    用MapX与C#开发地理信息系统

    实例7展示了如何创建一个测量长度和面积的自定义工具,扩展了MapX的功能。 4.6 MAPX地图符号样式的定制 MapX支持自定义地图符号样式,以满足个性化设计的需求。开发者可以根据需求调整图元的颜色、形状、大小等...

Global site tag (gtag.js) - Google Analytics