GEO函数
大圆形距离
使用great-circle distance公式计算地球表面两点之间的距离。
输入参数
lon1Deg— 第一个点的经度,单位:度,范围:[-180°, 180°]。lat1Deg— 第一个点的纬度,单位:度,范围:[-90°, 90°]。lon2Deg— 第二个点的经度,单位:度,范围:[-180°, 180°]。lat2Deg— 第二个点的纬度,单位:度,范围:[-90°, 90°]。
正值对应北纬和东经,负值对应南纬和西经。
返回值
地球表面的两点之间的距离,以米为单位。
当输入参数值超出规定的范围时将抛出异常。
示例
尖尖的人
检查指定的点是否至少包含在指定的一个椭圆中。 下述中的坐标是几何图形在笛卡尔坐标系中的位置。
输入参数
x, y— 平面上某个点的坐标。xᵢ, yᵢ— 第i个椭圆的中心坐标。aᵢ, bᵢ— 以x, y坐标为单位的第i个椭圆的轴。
输入参数的个数必须是2+4⋅n,其中n是椭圆的数量。
返回值
如果该点至少包含在一个椭圆中,则返回1;否则,则返回0。
示例
pointInPolygon
检查指定的点是否包含在指定的多边形中。
输入参数
(x, y)— 平面上某个点的坐标。元组类型,包含坐标的两个数字。[(a, b), (c, d) ...]— 多边形的顶点。阵列类型。每个顶点由一对坐标(a, b)表示。顶点可以按顺时针或逆时针指定。顶点的个数应该大于等于3。同时只能是常量的。- 该函数还支持镂空的多边形(切除部分)。如果需要,可以使用函数的其他参数定义需要切除部分的多边形。(The function does not support non-simply-connected polygons.)
返回值
如果坐标点存在在多边形范围内,则返回1。否则返回0。
如果坐标位于多边形的边界上,则该函数可能返回1,或可能返回0。
示例
geohashEncode
将经度和纬度编码为geohash-string,请参阅(http://geohash.org/,https://en.wikipedia.org/wiki/Geohash)。
输入值
- longitude - 要编码的坐标的经度部分。其值应在
[-180°,180°]范围内 - latitude - 要编码的坐标的纬度部分。其值应在
[-90°,90°]范围内 - precision - 可选,生成的geohash-string的长度,默认为
12。取值范围为[1,12]。任何小于1或大于12的值都会默认转换为12。
返回值
- 坐标编码的字符串(使用base32编码的修改版本)。
示例
geohashDecode
将任何geohash编码的字符串解码为经度和纬度。
输入值
- encoded string - geohash编码的字符串。
返回值
- (longitude, latitude) - 经度和纬度的
Float64值的2元组。
示例
geoToH3
计算指定的分辨率的H3索引(lon, lat)。
输入值
返回值
- H3中六边形的索引值。
- 发生异常时返回0。
UInt64类型。
示例
geohashesInBox
计算在指定精度下计算最小包含指定的经纬范围的最小图形的geohash数组。
输入值
- longitude_min - 最小经度。其值应在
[-180°,180°]范围内 - latitude_min - 最小纬度。其值应在
[-90°,90°]范围内 - longitude_max - 最大经度。其值应在
[-180°,180°]范围内 - latitude_max - 最大纬度。其值应在
[-90°,90°]范围内 - precision - geohash的精度。其值应在
[1, 12]内的UInt8类型的数字
请注意,上述所有的坐标参数必须同为Float32或Float64中的一种类型。
返回值
- 包含指定范围内的指定精度的geohash字符串数组。注意,您不应该依赖返回数组中geohash的顺序。
- [] - 当传入的最小经纬度大于最大经纬度时将返回一个空数组。
请注意,如果生成的数组长度超过10000时,则函数将抛出异常。
示例