JSON AsGeo - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

JSON AsGeo

AsGeoJSON 會傳回輸入幾何或地理位置的 GeoJSON 表示法。如需 GeoJSON 的相關資訊,請參閱 Wikipedia 中的 GeoJSON

對於 3DZ 和 4D 幾何,輸出幾何是輸入 3DZ 或 4D 幾何的 3DZ 投影。也就是說,xyz 座標存在於輸出中。對於 3DM 幾何,輸出幾何是輸入 3DM 幾何的 2D 投影。也就是說,只有 xy 座標存在於輸出中。

對於輸入的地理位置,ST_ AsGeo JSON 會傳回輸入地理位置的 GeoJSON 表示法。使用指定的精確度顯示地理座標。

語法

ST_AsGeoJSON(geo)
ST_AsGeoJSON(geo, precision)

引數

geo

GEOMETRYGEOGRAPHY 資料類型的值,或是評估為 GEOMETRYGEOGRAPHY 類型的運算式。

precision

INTEGER 資料類型的值。對於幾何,使用指定的精確度 1-20 顯示 geo 座標。如果沒有指定 precision,則預設為 15。對於地理,使用指定的精確度顯示 geo 座標。如果沒有指定 precision,則預設為 15。

傳回類型

VARCHAR

如果 geo 為 null,則傳回 null。

如果 precision 為 Null,則會傳回 Null。

如果結果大於 64-KB VARCHAR,則會傳回錯誤。

範例

以下 SQL 會傳回 linestring 的 GeoJSON 表示法。

SELECT ST_AsGeoJSON(ST_GeomFromText('LINESTRING(3.141592653589793 -6.283185307179586,2.718281828459045 -1.414213562373095)'));
st_asgeojson ---------------------------------------------------------------------------------------------------------------- {"type":"LineString","coordinates":[[3.14159265358979,-6.28318530717959],[2.71828182845905,-1.41421356237309]]}

以下 SQL 會傳回 linestring 的 GeoJSON 表示法。幾何的座標會使用六位數的精確度顯示。

SELECT ST_AsGeoJSON(ST_GeomFromText('LINESTRING(3.141592653589793 -6.283185307179586,2.718281828459045 -1.414213562373095)'), 6);
st_asgeojson ----------------------------------------------------------------------------- {"type":"LineString","coordinates":[[3.14159,-6.28319],[2.71828,-1.41421]]}

以下 SQL 會傳回地理的 GeoJSON 表示法。

SELECT ST_AsGeoJSON(ST_GeogFromText('LINESTRING(110 40, 2 3, -10 80, -7 9)'));
st_asgeojson ---------------------------------------------------------------------- {"type":"LineString","coordinates":[[110,40],[2,3],[-10,80],[-7,9]]}