ถ้าคุณต้องการที่จะทำโดยทางโปรแกรมด้วย Python อาจเป็นเพราะ GDAL / OGR เป็นวิธีที่ดีที่สุด ดูตัวอย่างรหัสที่คัดลอกบนตารางจาก PostgreSQL ลงในไฟล์ SHP ตัวอย่างไม่สมบูรณ์แบบ แต่คุณสามารถปรับเปลี่ยนได้อย่างง่ายดายเพื่อให้เหมาะกับความต้องการของคุณ
import os
os.environ['PATH'] = "c:\\Program Files\\GDAL\\bin" + ';' + os.environ['PATH']
os.environ['GDAL_DRIVER_PATH'] = "c:\\Program Files\\GDAL\\bin\\gdal\\plugins-optional"
os.environ['GDAL_DATA'] = "c:\\Program Files\\GDAL\\bin\\gdal-data"
import ogr
conn=ogr.Open("PG: host=192.168.5.3 dbname=some_database user=postgres password=xxxx")
if conn is None:
print 'Could not open a database or GDAL is not correctly installed!'
sys.exit(1)
output = "d:\\points.shp"
# Schema definition of SHP file
out_driver = ogr.GetDriverByName( 'ESRI Shapefile' )
out_ds = out_driver.CreateDataSource(output)
out_srs = None
out_layer = out_ds.CreateLayer("point", out_srs, ogr.wkbPoint)
fd = ogr.FieldDefn('name',ogr.OFTString)
out_layer.CreateField(fd)
layer = conn.GetLayerByName("point_data")
#layer = conn.ExecuteSQL(sql)
feat = layer.GetNextFeature()
while feat is not None:
featDef = ogr.Feature(out_layer.GetLayerDefn())
featDef.SetGeometry(feat.GetGeometryRef())
featDef.SetField('name',feat.TITLE)
out_layer.CreateFeature(featDef)
feat.Destroy()
feat = layer.GetNextFeature()
conn.Destroy()
out_ds.Destroy()
หากสภาพแวดล้อมการเขียนโปรแกรมของคุณเป็น Windows แล้วคุณสามารถดาวน์โหลด GDAL / OGR จากที่นี่ บางคนเริ่มต้นที่ดีวัสดุที่คุณสามารถหาได้ที่นี่ หวังว่ามันจะช่วย