全部产品

Ganos Spark 函数

更新时间:2019-08-12 10:02:13

Ganos Spark 函数

成功构建SparkSession对象后,就可以通过read方法加载数据为DataFrame对象了。Ganos Spark提供了一系列UDF时空算子实现基于SQL的时空数据查询,这些时空算子主要分为:


1. SpatialConstructors空间构造函数

ST_GeomFromGeoHash

  1. Geometry st_geomFromGeoHash(String geohash, Int prec)

给定GeoHash编码,放回该编码对应的GeoHash值,GeoHash的精度为prec位

ST_GeomFromWKT

  1. Geometry st_geomFromWKT(String wkt)

从给定WKT格式表示的空间对象描述转化为Geometry对象

ST_GeomFromWKB

  1. Geometry st_geomFromWKB(Array[Byte] wkb)

从给定WKB格式表示的空间对象描述转化为Geometry对象

ST_LineFromText

  1. LineString st_lineFromText(String wkt)

从给定WKB格式表示的空间线对象描述转化为LineString对象

ST_MakeBox2D

  1. Geometry st_makeBox2D(Point lowerLeft, Point upperRight)

给定左下(lowerLeft)与右上(upperRight)点对象,生成它们所表示的空间范围的Geometry对象

ST_MakeBBOX

  1. Geometry st_makeBBOX(Double lowerX, Double lowerY, Double upperX, Double upperY)

按照给定边界的坐标值生成所表示的空间范围的Geometry对象

ST_MakePolygon

  1. Polygon st_makePolygon(LineString shell)

生成线对象shell所包围的区域的Polygon对象,shell必须为闭合线对象。

ST_MakePoint

  1. Point st_makePoint(Double x, Double y)

给定x,y坐标,生成POINT对象

ST_MakeLine

  1. LineString st_makeLine(Seq[Point] points)

给定一系列POINT对象,生成它们所构成的LineString对象

ST_MakePointM

  1. Point st_makePointM(Double x, Double y, Double m)

给定x,y,m坐标值,生成POINT对象

ST_MLineFromText

  1. MultiLineString st_mLineFromText(String wkt)

生成wkt格式表示的MultiLineString对象

ST_MPointFromText

  1. MultiPoint st_mPointFromText(String wkt)

生成wkt格式表示的MultiPoint对象

ST_MPolyFromText

  1. MultiPolygon st_mPolyFromText(String wkt)

生成wkt格式表示的MultiPolygon对象

ST_Point

  1. Point st_point(Double x, Double y)

等同于ST_MakePoint, 即给定x,y坐标,生成POINT对象。

ST_PointFromGeoHash

  1. Point st_pointFromGeoHash(String geohash, Int prec)

返回由Geohash字符串geohash(base-32编码)定义的边界框的几何中心处的Point,其精度为prec位。

ST_PointFromText

  1. Point st_pointFromText(String wkt)

ST_PointFromWKB

  1. Point st_pointFromWKB(Array[Byte] wkb)

从给定WKB格式表示的空间对象描述生成Point对象

ST_Polygon

  1. Polygon st_polygon(LineString shell)

从给定LineString空间对象生成Polygon对象

ST_PolygonFromText

  1. Polygon st_polygonFromText(String wkt)

从给定WKT格式表示的空间对象描述生成Polygon对象

2. Geometry Accessors函数

ST_Boundary

  1. Geometry st_boundary(Geometry geom)

使用 ST_Boundary 函数可确定源 ST_Geometry 的边界

ST_CoordDim

  1. Int st_coordDim(Geometry geom)

要评估几何的维度,请使用 ST_Dimension 函数,该函数处理 ST_Geometry 要素并以整数形式返回维度.

ST_Dimension

  1. Int st_dimension(Geometry geom)

要评估几何的维度,请使用 ST_Dimension 函数,该函数处理 ST_Geometry 要素并以整数形式返回维度。

ST_Envelope

  1. Geometry st_envelope(Geometry geom)

T_Envelope 函数处理 ST_Geometry 并返回表示源 ST_Geometry 包络矩形的 ST_Geometry。

ST_ExteriorRing

  1. LineString st_exteriorRing(Geometry geom)

以 ST_LineString 形式返回 ST_Polygon 的外部环

ST_GeometryN

  1. Int st_geometryN(Geometry geom, Int n)

可以使用 ST_GeometryN 函数确定多部分几何中位置 N 处存在哪种几何;N 是您为此函数提供的数值。例如,如果您想要返回多点几何的第2个点,则可以在执行此函数时设置n为“2”。

ST_InteriorRingN

  1. Int st_interiorRingN(Geometry geom, Int n)

评估 STPolygon 和索引并以 ST_LineString 形式返回第 _n 个内部环

ST_IsClosed

  1. Boolean st_isClosed(Geometry geom)

使用 ST_IsClosed 谓词函数可确定线串是否闭合;如果线串的起点与终点相交,则 ST_IsClosed 返回 TRUE。

ST_IsCollection

  1. Boolean st_isCollection(Geometry geom)

判断geom对象是否为几何对象集合。

ST_IsEmpty

  1. Boolean st_isEmpty(Geometry geom)

ST_IsEmpty 谓词函数用于确定几何是否为空。该函数分析 ST_Geometry,如果 ST_Geometry 为空,则返回 1 (TRUE);如果不为空,则返回 0 (FALSE)

ST_IsRing

  1. Boolean st_isRing(Geometry geom)

ST_IsRing 以 ST_LineString 作为输入参数,如果是环(如 ST_LineString 是闭合的简单线串),则返回 1;否则返回 0

ST_IsSimple

  1. Boolean st_isSimple(Geometry geom)

ST_IsSimple 谓词函数用于确定 ST_LineString、ST_MultiPoint 或 ST_MultiLineString 是简单的还是非简单的

ST_IsValid

  1. Boolean st_isValid(Geometry geom)

ST_IsSimple 谓词函数用于确定集合对象geom是否为有效的集合对象。

ST_NumGeometries

  1. Int st_numPoints(Geometry geom)

您可能想要确定多部分几何中各种几何的数目,例如 ST_MultiPoint、ST_MultiLineString 和 ST_MultiPolygon 的数目。为此,请使用 ST_NumGeometries 谓词函数。此函数返回几何集合中各种元素的计数。

ST_NumPoints

  1. Int st_numPoints(Geometry geom)

评估 ST_LineString 并以整数数形式返回其序列中的点数

ST_PointN

  1. Point st_pointN(Geometry geom, Int n)

获取 STLineString 和第 _n 个点的索引,然后返回该点

ST_X

  1. Float st_X(Geometry geom)

以双精度数形式返回点数据类型的 x 坐标值

ST_Y

  1. Float st_y(Geometry geom)

以双精度数形式返回点数据类型的 y 坐标值

3. Geometry Cast函数

ST_CastToPoint

  1. Point st_castToPoint(Geometry g)

将Geometry类型转换为Point类型

ST_CastToPolygon

  1. Polygon st_castToPolygon(Geometry g)

将Geometry类型转换为Polygon类型

ST_CastToLineString

  1. LineString st_castToLineString(Geometry g)

将Geometry类型转换为LineString类型

ST_ByteArray

  1. Array[Byte] st_byteArray(String s)

将字符串类型按照UTF-8转换为Array[Byte]类型

4. Geometry Editors函数

ST_Translate

  1. Geometry st_translate(Geometry geom, Double deltaX, Double deltaY)

返回将Geometry对象按照矢量(deltaX,deltaY)位移后生成的新的Geometry对象。

5. Geometry Outputs函数

ST_AsBinary

  1. Array[Byte] st_asBinary(Geometry geom)

返回Geometry的Array[Byte] 表示方式。

ST_AsGeoJSON

  1. String st_asGeoJSON(Geometry geom)

返回Geometry的GeoJSON表示方式。

ST_AsLatLonText

  1. String st_asLatLonText(Point p)

返回描述Point对象的纬度和经度的字符串描述,以度,分和秒为单位(这假设p的坐标单位是纬度和经度)

ST_AsText

  1. String st_asText(Geometry geom)

返回Geometry的字符串表示方式。

ST_GeoHash

  1. String st_geoHash(Geometry geom, Int prec)

返回Geometry的GeoHash编码表示方式,精度位数为prec。

6. Spatial Relationships函数

ST_Contains

  1. Boolean st_contains(Geometry a, Geometry b)

当且仅当a的外部没有b的位置时,返回true,并且b的内部的至少一个点位于a的内部。

ST_Covers

  1. Boolean st_covers(Geometry a, Geometry b)

如果属于b的任意一点都位于a的内部,则返回true

ST_Crosses

  1. Boolean st_crosses(Geometry a, Geometry b)

如果a与b有部分相同区域,但不是全部,则放回true

ST_Disjoint

  1. Boolean st_disjoint(Geometry a, Geometry b)

等同于“NOT ST_Intersects”, 即a与b没有任何相交的部分

ST_Equals

  1. Boolean st_equals(Geometry a, Geometry b)

如果a与b完全想同,则返回true

ST_Intersects

  1. Boolean st_intersects(Geometry a, Geometry b)

如果a与b有部分会全部区域相同,则放回true

ST_Overlaps

  1. Boolean st_overlaps(Geometry a, Geometry b)

如果几何具有一些但不是所有的共同点,具有相同的尺寸,并且两个几何的内部的交点与几何本身具有相同的尺寸,则返回true

ST_Touches

  1. Boolean st_touches(Geometry a, Geometry b)

如果a与b至少有一个共同PIOINT对象,并且a与b内部没有任何相交部分,则返回true。

ST_Within

  1. Boolean st_within(Geometry a, Geometry b)

如果a完全位于b内部,则返回true

ST_Relate

  1. String st_relate(Geometry a, Geometry b)

返回描述两个几何的内部,边界和外部之间的交叉点的维度的“九交模型”交互矩阵模式。

ST_RelateBool

  1. Boolean st_relateBool(Geometry a, Geometry b, String mask)

如果“九交模型”交互矩阵掩码掩码与从st_relate(a,b)获得的交互矩阵模式匹配,则返回true。

ST_Area

  1. Double st_area(Geometry g)

放回Geometry的面积

ST_Centroid

  1. Point st_centroid(Geometry g)

放回Geometry的几何中心

ST_ClosestPoint

  1. Point st_closestPoint(Geometry a, Geometry b)

返回a与b距离最近的POINT对象

ST_Distance

  1. Double st_distance(Geometry a, Geometry b)

以坐标参考系统为单位返回两个几何之间的2D笛卡尔距离(例如,EPSG的度数:4236)。

ST_DistanceSphere

  1. Double st_distanceSphere(Geometry a, Geometry b)

假设球形地球,近似两个经度/纬度几何之间的最小距离。

ST_Length

  1. Double st_length(Geometry geom)

以坐标参考系统为单位返回线性几何的2D路径长度或面几何的周长(例如,EPSG的度数:4236)。对于其他几何类型(例如Point),返回0.0。

ST_LengthSphere

  1. Double st_lengthSphere(LineString line)

使用球形地球模型近似LineString几何的2D路径长度。返回的长度以米为单位。近似值在st_lengthSpheroid的0.3%范围内,并且在计算上更有效。

7. Geometry Processing函数

ST_antimeridianSafeGeom

  1. Geometry st_antimeridianSafeGeom(Geometry geom)

如果geom跨越antimeridian,则尝试将几何转换为“antimeridian-safe”的等效形式(即输出几何由BOX(-180 -90,180,90)覆盖)。在某些情况下,此方法可能会失败,在这种情况下将返回输入几何,并将记录错误。

ST_BufferPoint

  1. Geometry st_bufferPoint(Point p, Double buffer)

返回覆盖Point p给定半径内所有点的几何,其中radius以米为单位

ST_ConvexHull

  1. Geometry st_convexHull(Geometry geom)

聚合函数。几何体的凸包表示包含聚合行中所有几何图形的最小凸面几何体。