カテゴリ:

地理空間関数

ST_ASGEOJSON

GEOGRAPHY または GEOMETRY 型の値を指定すると、その値の GeoJSON 表現を返します。

構文

ST_ASGEOJSON( <geography_or_geometry_expression> ) 
Copy

引数

geography_or_geometry_expression

引数は型 GEOGRAPHY または GEOMETRY の式にする必要があります。

戻り値

GeoJSON 形式の OBJECT。

使用上の注意

GEOMETRY オブジェクトで、

  • 返された GEOMETRY オブジェクトは、入力 GEOMETRY オブジェクトと同じ座標系を使用します。

    GeoJSON の仕様では、ジオメトリを WGS84 座標系(SRID = 4326)にする必要があることに注意してください。ただし、 ST_ASGEOJSON 関数はこれを強制しません。

  • この関数は、 SRID またはその他の CRS 情報を出力に追加しません。

GEOGRAPHY 例

次の例は、 ST_ASGEOJSON 関数を示しています。

create table geospatial_table (id INTEGER, g GEOGRAPHY); insert into geospatial_table values (1, 'POINT(-122.35 37.55)'), (2, 'LINESTRING(-124.20 42.00, -120.01 41.99)'); 
Copy
select st_asgeojson(g) from geospatial_table order by id; +------------------------+ | ST_ASGEOJSON(G) | |------------------------| | { | | "coordinates": [ | | -122.35, | | 37.55 | | ], | | "type": "Point" | | } | | { | | "coordinates": [ | | [ | | -124.2, | | 42 | | ], | | [ | | -120.01, | | 41.99 | | ] | | ], | | "type": "LineString" | | } | +------------------------+ 
Copy

VARIANT 出力を VARCHAR にキャストすると、次のようになります。

select st_asgeojson(g)::varchar from geospatial_table order by id; +-------------------------------------------------------------------+ | ST_ASGEOJSON(G)::VARCHAR | |-------------------------------------------------------------------| | {"coordinates":[-122.35,37.55],"type":"Point"} | | {"coordinates":[[-124.2,42],[-120.01,41.99]],"type":"LineString"} | +-------------------------------------------------------------------+ 
Copy

GEOMETRY 例

次の例は、 GEOMETRY オブジェクトを入力として使用する ST_ASGEOJSON 関数を示しています。

SELECT ST_ASGEOJSON(TO_GEOMETRY('SRID=4326;LINESTRING(389866 5819003, 390000 5830000)')) AS geojson; 
Copy
+------------------------+ | GEOJSON | |------------------------| |{ | | "coordinates": [ | | [ | | 389866, | | 5819003 | | ], | | [ | | 390000, | | 5830000 | | ] | | ], | | "type": "LineString" | |} | +------------------------+ 
Copy