ArcGIS——数据库空间SQL(二、oracle中ST_GEOMETRY函数使用)

一、引言


上一波配置好了oracle中sde函数的环境,这一波就尝试着使用了下基本的函数st_geometry,为下一步不用arcgis server做准备了,现在还很少使用st_raster==


二、干货


1、自动生成的complex类型的shape字段

查询方法如下:

SELECT t.SHAPE FROM "GGBWY_构件" t


查询结果如下:

ArcGIS——数据库空间SQL(二、oracle中ST_GEOMETRY函数使用)_第1张图片

具体其中一条数据:

SDE.ST_GEOMETRY(8, 5, 664229.20532171, -3216.215523613970, 664449.2053217110, -1716.215523613970, null, null, null, null, 330000.0000000080, 3440.000000000010, 300004)

很奇怪这并不是我们常见的polygon ((40 40, 40 60, 60 60, 60 40, 40 40))这种类型,那里面的8,5这些都是啥呢:

ST_Geometry 存储空间数据的结构如下表:

Name    Type

ENTITY NUMBER(38)

NUMPTS NUMBER(38)

MINX     FLOAT(64)

MINY FLOAT(64)

MAXX FLOAT(64)

MAXY FLOAT(64)

MINZ FLOAT(64)

MAXZ FLOAT(64)

MINM FLOAT(64)

MAXM FLOAT(64)

AREA FLOAT(64)

LEN FLOAT(64)

SRID NUMBER(38)

POINTS BLOB

Entity 为要素类型,包括 (linestring, multilinestring, multipoint, multipolygon, point, or polygon )。具体的值对应的类型可以通过st_geom_util 存储过程获得。 NUMPTS 为坐标点的个数

Minx, miny, maxx, maxy 几何的外包络矩形

Area 几何的面积

Len 几何的周长

SRID 空间参考系 ID ,对应 ST_Spatial_References 表中的空间参考信息

POINTS 坐标序列


2、shape字段转换文本类型

查询方法

SELECT SDE.st_astext(t.SHAPE) FROM "GGBWY_构件" t


查询结果

ArcGIS——数据库空间SQL(二、oracle中ST_GEOMETRY函数使用)_第2张图片

这样的数据就成为我们平时查看的格式了。


3、空间查询举例

查询方法

SELECT SDE.st_astext(t.SHAPE) FROM "GGBWY_构件" t WHERE sde.st_intersects (t.SHAPE,  sde.st_geometry('POLYGON  (( 664229.20532171 -1716.21552361, 664229.20532171 -3216.21552361, 664449.20532171 -3216.21552361, 664449.20532171 -1716.21552361, 664229.20532171 -1716.21552361))', 300004)) = 1

查询结果

ArcGIS——数据库空间SQL(二、oracle中ST_GEOMETRY函数使用)_第3张图片

这里st_geometry中的函数参数要填写srid,srid可以用下面的sql语句查询

SELECT  SDE.st_srid(t.SHAPE) FROM "GGBWY_构件" t


要想使用其他的空间函数,请查看官网点击打开链接


三、总结


  • st_geometry类型

  • st_geometry类型转文本类型

  • st_geometry类型的相关函数使用



你可能感兴趣的:(SQL,GIS,ArcGIS,JavaScript)