ST_GeomFromGeoSquare
ST_GeomFromGeoSquare 返回一个几何体,该几何体覆盖由输入 geosquare 值表示的区域。返回的几何体始终是二维的。要计算 geosquare 值,请参阅 ST_GeoSquare。
语法
ST_GeomFromGeoSquare(geosquare)
ST_GeomFromGeoSquare(geosquare, max_depth)
参数
- geosquare
-
一个数据类型为
BIGINT
的值或一个计算结果为BIGINT
类型的 geosquare 值的表达式,该值描述了为达到目标正方形,而在初始域上进行细分的顺序。此值由 ST_GeoSquare 计算。 - max_depth
-
一个数据类型为
INTEGER
的值,表示在初始域上进行的最大域细分次数。此值必须等于或大于1
。
返回类型
GEOMETRY
如果 geosquare 无效,则该函数会返回错误。
如果输入 max_depth 不在范围内,则该函数会返回错误。
示例
以下 SQL 从 geosquare 值返回几何体。
SELECT ST_AsText(ST_GeomFromGeoSquare(797852));
st_astext
--------------------------------------------------------------------------------------------------------------------
POLYGON((13.359375 52.3828125,13.359375 52.734375,13.7109375 52.734375,13.7109375 52.3828125,13.359375 52.3828125))
以下 SQL 从 geosquare 值返回几何体,最大深度为 3
。
SELECT ST_AsText(ST_GeomFromGeoSquare(797852, 3));
st_astext
--------------------------------------
POLYGON((0 45,0 90,45 90,45 45,0 45))
以下 SQL 首先通过将 x 坐标指定为经度,将 y 坐标指定为纬度 (-122.3, 47.6) 来计算西雅图的 geosquare 值,然后为 geosquare 返回多边形。尽管输出是二维几何体,但它可用于根据经度和纬度计算空间数据。
SELECT ST_AsText(ST_GeomFromGeoSquare(ST_GeoSquare(ST_Point(-122.3, 47.6))));
st_astext
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
POLYGON((-122.335167014971 47.6080129947513,-122.335167014971 47.6080130785704,-122.335166931152 47.6080130785704,-122.335166931152 47.6080129947513,-122.335167014971 47.6080129947513))