ST_ASGEOJSON
ST_ASGEOJSON
GEOGRAPHY 또는 GEOMETRY 타입의 값을 입력받아 그 값을 GeoJSON 형식으로 표현해 반환해요.
본문
구문
ST_ASGEOJSON( <geography_or_geometry_expression> )
인자
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)');
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" |
| } |
+------------------------+
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"} |
+-------------------------------------------------------------------+
GEOMETRY 예제
다음 예제는 GEOMETRY 객체를 입력으로 사용하는 ST_ASGEOJSON 함수를 보여줘요.
SELECT ST_ASGEOJSON(TO_GEOMETRY('SRID=4326;LINESTRING(389866 5819003, 390000 5830000)')) AS geojson;
+------------------------+
| GEOJSON |
|------------------------|
|{ |
| "coordinates": [ |
| [ |
| 389866, |
| 5819003 |
| ], |
| [ |
| 390000, |
| 5830000 |
| ] |
| ], |
| "type": "LineString" |
|} |
+------------------------+