1、例如表中coord_str的字段数据是121.12334 31.3435这样的字符串,如何将对应的数据转换成geometry数据,实现如下
UPDATE coordinates
SET geom = ST_GeomFromText('POINT(' || split_part(coord_str, ' ', 1) || ' ' || split_part(coord_str, ' ', 2) || ')', 4326);
2、例如表中coord_str的字段数据是lon:121.12334,lat:31.3435这样的字符串,如何将对应的数据转换成geometry数据,实现如下
SET geom = ST_SetSRID(ST_MakePoint((regexp_matches(coord_str, '"lon":([0-9.]+)'))[1]::float, (regexp_matches(coord_str, '"lat":([0-9.]+)'))[1]::float
), 4326);
3、对于geometry字段如何判断几何数据类型
- 使用 ST_GeometryType 判断几何数据类型
ELECT id, ST_GeometryType(geom) AS geom_type
FROM my_table;
这个查询会返回每个几何对象的类型,如 ST_Point, ST_LineString, ST_Polygon 等。