适用于: Databricks Runtime 17.1 及更高版本
重要
此功能目前以公共预览版提供。
表示地理对象(点、线字符串、多边形等),其坐标引用系统是地理对象,并由类型的 SRID 值 GEOGRAPHY
描述。 地理对象所在的基础空间是一个周期性空间,第一个轴表示经度(以度为单位),第二个轴表示纬度(以度为单位)。 坐标应位于 [-180, 180]
经度和 [-90, 90]
纬度范围内。
注释
Iceberg 表不支持 GEOGRAPHY
列。
语法
GEOGRAPHY ( { srid | ANY } )
限制
类型为GEOGRAPHY(ANY)
的列可以保存地理数据,并且每行的 SRID 值可以不同。
无法持久保存类型 GEOGRAPHY(ANY)
列。
唯一允许用于 GEOGRAPHY
类型的 SRID 值是 4326
。
如果用户尝试定义包含 SRID 值以外的GEOGRAPHY
列,用户将收到4326
错误。
文本
有关如何创建 GEOGRAPHY
值的详细信息,请参阅:
-
st_geogfromgeojson
函数 -
st_geogfromtext
函数 -
st_geogfromwkb
函数 -
st_geogfromwkt
函数 -
to_geography
函数 -
try_to_geography
函数
注释
- 若要将
GEOGRAPHY
值转换为地理空间标准或广泛使用的格式之一,可以使用:-
st_asbinary
用于 导出GEOGRAPHY
WKB 格式的函数。 -
st_asewkt
函数 以扩展 WKT (EWKT) 格式导出GEOGRAPHY
。 -
st_asgeojson
用于 导出GEOGRAPHY
GeoJSON 格式的函数。 -
st_astext
函数 以 WKT 格式导出GEOGRAPHY
。
-
例子
> SELECT hex(st_asbinary(st_geogfromtext('POINT(1 2)'));
0101000000000000000000f03f0000000000000040
> SELECT st_asewkt(st_geogfromwkb(X'0101000000000000000000f03f0000000000000040');
SRID=4326;POINT(1 2)
> SELECT st_asgeojson(st_geogfromtext('POINT(1 2)');
{"type":"Point","coordinates":[[1,2]]}
> SELECT st_astext(st_geogfromgeojson('{"type":"Point","coordinates":[[1,2]]}');
POINT(1 2)
> SELECT st_astext(to_geography('{"type":"Point","coordinates":[[1,2]]}');
POINT(1 2)
> SELECT try_to_geography('not a geography value');
NULL