- 类别:
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" | |} | +------------------------+