Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member
0 Kudos

    在上一篇博客中,我们对SAP HANA 支持的空间数据类型进行了介绍,并详细讨论了ST_Geometry类型,毕竟它是其它所有类型的父类,并且其它类型也继承了很多ST_Geometry类型的重要方法, 包括空间位置关系判断、类型转换、数值及属性计算函数。但是,另一方面,ST_Geometry无法实例化,因此要存储实际的空间数据必须是其它类型,它们也都定义了各自的构造函数及特有的方法,下面我们对所有的具体类型进行详细的介绍。


1.1  ST_Point


ST_Point类型用于定义点,特有的方法只有3:


ST_X

ST_Y

ST_Z



 


ST_Point的构造函数有4


ST_Point

用于构建空对象

ST_Point(LONG VARCHAR)

从本文构建对象

ST_Point(LONG BINARY)

从二进制表示构建对象

ST_Point(DOUBLE,DOUBLE)

指定XY坐标数值构建对象







ST_X()ST_Y()ST_Z()分别返回点的XYZ坐标。


注意: ST_Point(DOUBLE,DOUBLE)只提供了构建2维点的构造函数,如果要构造3维点,可以如下所示定义,和2维点的有所不同。



需要注意的是,根据具体类型的不同,所继承的ST_Geometry方法的集合也有所不同,对于ST_Point来说,它继承了如下方法


ST_AsBinary

ST_AsGeoJSON

ST_AsText

ST_AsWKB

ST_AsWKT

ST_Contains

ST_ConvexHull

ST_Crosses

ST_Dimension

ST_Distance

ST_Envelope

ST_Equals

ST_GeomFromText

ST_GeometryType

ST_Intersection

ST_Intersects

ST_IntersectsRect

ST_Is3D

ST_IsEmpty

ST_IsValid

ST_OrderingEquals

ST_SRID

ST_SnapToGrid

ST_WithinDistance

ST_XMax

ST_XMin

ST_YMax

ST_YMin

ST_ZMax

ST_ZMin



































具体的使用请参考上一篇博客或者官方文档。


1.2 ST_MultiPoint


ST_MultiPoint用于表示0或多个点构成的集合。构造函数和ST_Point类似。ST_MultiPoint没有特定的方法。


1.3 ST_LineString


ST_LineString类型用于表示多条线段构成的折线,如果只定义了两个点就退化为线段。它的性质包括是否是简单的和封闭的,如果折线没有和自身交叉则是简单的,如果折线的首尾端点重合则是封闭的。ST_LineString特有的方法包括


ST_EndPoint

ST_IsClosed

ST_IsRing

ST_Length

ST_NumPoints

ST_PointN

ST_StartPoint









ST_LineString有三个构造函数


ST_LineString()

用于构建空对象

ST_LineString(LONG VARCHAR)

从本文表示构建对象

ST_LineString(LONG BINARY)

从二进制表示构建对象





比如,新建一个端点为(0,0)(5,10)的线段。



ST_EndPoint返回一个ST_LineString的结束点。ST_IsClosed判断ST_LineString是否是封闭的,即开始点和结束点是同一个。ST_IsRing判断ST_LineString是否形成环,即满足:既是简单的又是封闭的。

(0, 0),(1, 0),(1, 1),(0,1),(0, 0)连成的折线构成一个变长为1的正方形,各条线段没有交叉,并且是封闭的



ST_Length返回折线段的长度。

ST_NumPoints返回定义折线的点的个数,如



ST_PointN(n)返回定义折线的第n个点,其中n的取值从1ST_NumPointsST_StartPoint返回定义折线段的开始点。


1.4  ST_MultiLineString


ST_MultiLineString用于表示0个或多个折线构成的集合。特定的方法有


ST_IsClosed

ST_Length



ST_MultiLineString构造函数如下


ST_MultiLineString()

构建空对象

ST_MultiLineString(LONG VARCHAR)

从文本构建对象

ST_MultiLineString(LONG BINARY)

从二进制构造对象






需要注意的地方是文本字符串的格式。

ST_IsClosed用于判断对象是否封闭,即满足非空和拥有空的边界。ST_Length返回所有折线段的长度之和。


1.5 ST_Polygon


ST_Polygon用于表示一个多边形。特有的方法包括


ST_Area

ST_Centroid




和其它类型相似,也有3个构造函数


ST_Polygon()

用于构造空对象

ST_Polygon(LONG VARCHAR)

从文本构造对象

ST_Polygon(LONG BINARY)

从二进制字符串构造对象





需要注意的是第2个构造函数调用时文本字符串的格式。



ST_Area返回一个多边形的面积。比如,定义顶点分别为(0,0),(1,0),(1,1),(0,1)的边长为1的正方形,则其面积为1


ST_Centroid返回多边形的形心。


1.6  ST_MultiPolygon


ST_MultiPolygon用于表示0个或多个多边形构成的集合。特定的方法包括


ST_Area



ST_Area返回多个多边形的总面积。

ST_MultiPolygon继承的ST_Geometry的方法包括


ST_AsBinary

ST_AsGeoJSON

ST_AsText

ST_AsWKB

ST_AsWKT

ST_Contains

ST_ConvexHull

ST_Crosses

ST_Dimension

ST_Distance

ST_Envelope

ST_Equals

ST_GeomFromText

ST_GeometryType

ST_Intersection

ST_Intersects

ST_IntersectsRect

ST_Is3D

ST_IsEmpty

ST_IsValid

ST_OrderingEquals

ST_SRID

ST_SnapToGrid

ST_WithinDistance

ST_XMax

ST_XMin

ST_YMax

ST_YMin

ST_ZMax

ST_ZMin

       































    在这一篇博客里,我们接着介绍了SAP HANA支持的所有具体空间数据类型以及特有的方法,重点对每种类型的特有方法进行了详细介绍。至此,SAP HANA空间数据类型及基本操作就介绍完了,想了解更多细节的读者请参阅官方文档SAP HANA Spatial Reference.


想获取更多SAP HANA学习资料或有任何疑问,请关注新浪微博@HANAGeek!我们欢迎你的加入!

转载本文章请注明作者和出处http://scn.sap.com/community/chinese/hana/blog/2014/04/15/sap-hana-%E7%A9%BA%E9%97%B4%E6%95%B0%E6%8D...,请勿用于任何商业用途。

Labels in this area