不能在pgAdmin中使用python添加QGIS多边形

问题描述:

我有一个csv其中包括一个东向和北向,东向2和北向2,东向3和北向3在qgis中构成一个多边形,所有东向和北向属性都是数字。不能在pgAdmin中使用python添加QGIS多边形

的代码所示:

import os 
import csv 
import psycopg2 
import time 
conn = psycopg2.connect (host="xxxx", database="xxxx", user="xxxx" 
,password="xxxx", port="xxxx") 

delete="ALTER Table highloading_qgis DROP COLUMN geom;" 

tem_delete="DELETE FROM public.highloading_qgis;" 

tem_carrier="copy highloading_qgis 
FROM'/home/ftpuser/Report/highloading_new.csv' With DELIMITER ',' CSV 
HEADER;" 

add_col="ALTER TABLE highloading_qgis ADD COLUMN geom geometry;" 


update_gpis="UPDATE highloading_qgis SET geom = 
(ST_MakePolygon(ST_GeomFromText('LINESTRING('Easting' 'Northing','Easting2' 
'Northing2','Easting3' 'Northing3')')));" 

cursor = conn.cursor() 
cursor.execute(delete) 
cursor.execute(tem_delete) 
cursor.execute(tem_carrier) 
cursor.execute(add_col) 
cursor.execute(update_gpis) 
cursor.close() 
conn.commit() 
conn.close() 

但我发现错误时执行cursor.execute(update_gpis)”

ProgrammingError: syntax error at or near "Easting" 
LINE 1: ...om = (ST_MakePolygon(ST_GeomFromText('LINESTRING('Easting' '... 

               ^

可以在任何一个可以帮助如何正确为多边形geomerty增加pgadmin ??

我不是这方面的专家,但我认为你需要至少4点的polygen.Above你只给出3.

你也可以尝试下面给出的查询。但不确定它

update_gpis="UPDATE highloading_qgis SET geom = (ST_MakePolygon(ST_GeomFromText(ST_AsText(ST_MakeLine(Array[ST_MakePoint(Easting,Northing),ST_MakePoint(Easting2,Northing2),ST_MakePoint(Easting3,Northing3),ST_MakePoint(Easting4,Northing4)])))));"