如何在postgreSQL中将点列表转换为GEOM



我有一个点列表(lat和lon(:

像这样:

[107.8188205,16.0573256],
[107.8188192,16.0576399],
[107.8188139,16.0580677],
[107.8187816,16.0585772],
[107.8188316,16.0589462],
[107.818921,16.059341],
[107.8191381,16.0600537],
[107.8194213,16.0606733]

我想把这些点转换成PostgreSQL的geom(这些点内部的区域(。

然后我可以使用函数st_within来检查一个点是否在一个区域内。

有一个函数ST_MakePolygon,它从点生成多边形

示例

SELECT ST_MakePolygon( ST_GeomFromText('LINESTRING(75 29,77 29,77 29, 75 29)'));

https://postgis.net/docs/ST_MakePolygon.html

您可以从数据中生成这样的字符串LINESTRING(75 29,77 29,77 29, 75 29),并将其传递到sql查询中

或另一示例

SELECT ST_MakePolygon(ST_GeomFromGeoJSON(
CONCAT('{"type":"LineString","coordinates":[', 
'[107.8188205,16.0573256],
[107.8188192,16.0576399],
[107.8188139,16.0580677],
[107.8187816,16.0585772],
[107.8188316,16.0589462],
[107.818921,16.059341],
[107.8191381,16.0600537],
[107.8194213,16.0606733],
[107.8188205,16.0573256],
[107.8188205,16.0573256]
', ']}')
))

最后一点必须与第一点相同

最新更新