Skip to Content

    在上一篇博客中,我们对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坐标数值构建对象






/wp-content/uploads/2014/04/1_432865.png

/wp-content/uploads/2014/04/2_432920.png


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


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


/wp-content/uploads/2014/04/3_432921.png


需要注意的是,根据具体类型的不同,所继承的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没有特定的方法。

/wp-content/uploads/2014/04/4_432922.png


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)的线段。


/wp-content/uploads/2014/04/5_432926.png

/wp-content/uploads/2014/04/6_432928.png


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

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


/wp-content/uploads/2014/04/7_432932.png


ST_Length返回折线段的长度。

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


/wp-content/uploads/2014/04/8_432933.png


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)

从二进制构造对象






/wp-content/uploads/2014/04/9_432938.png

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

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个构造函数调用时文本字符串的格式。


/wp-content/uploads/2014/04/10_432939.png


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


/wp-content/uploads/2014/04/11_432940.png

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%AE%E7%B1%BB%E5%9E%8…,请勿用于任何商业用途。

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply