我有一张这样的桌子
Table "public.zone_polygons"
Column | Type |
-----------+-------------------------+
id | integer |
zone_id | integer |
zone_name | text |
zone_path | text |
geom | geometry(Geometry,4326) |
每个zone_path均以这种格式的文本形式列出经纬度
75.2323 30.7423,
75.3432 30.5344,
75.5423 30.2342,
75.9123 30.3122,
75.2323 30.7423
我正在尝试通过以下查询使用zone_path值生成几何。
update zone_polygons set geom=ST_SetSRID(ST_MakePolygon(ST_GeomFromText('LINESTRING(zone_path)')), 4326);
我收到以下错误
ERROR: parse error - invalid geometry
HINT: "LINESTRING(zo" <-- parse error at position 13 within geometry
postgis中是否有一种方法可以使用其中一个字段来创建几何。
答案 0 :(得分:1)
我相信您输入错误,坐标位于Long-Lat(印度),而不是Lat-Long(巴伦支海中部)。 PostGIS期望坐标为Long-Lat,因此,如果输入列表确实为lat-long,则需要交换它。您可以修复源,也可以使用ST_FlipCoordinates
由于坐标保存在列中,因此需要使用Cache
将LINESTRING(
和列内容(不是名称)连接起来
'LINESTRING(' || zone_path || ')'