利用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显示的结果如下:
转载自:https://blog.csdn.net/nlslzf/article/details/83606981

You may also like...