def update_shp_sk(list_1, outlayer_jzx, featuredefn_jzx, dkbh, dkmc, dkmj, tfh, tdyt):
for i in list_1:
ring = ogr.Geometry(ogr.wkbLinearRing)
for ii in list_1[i]:
ring.AddPoint(ii[0], ii[1])
polygon = ogr.Geometry(ogr.wkbPolygon)
polygon.AddGeometry(ring)
feature = ogr.Feature(featuredefn_jzx)
feature.SetGeometry(polygon)
feature.SetField('地块编号', dkbh)
feature.SetField('地块名称', dkmc)
feature.SetField('地块面积', dkmj)
feature.SetField('图幅号', tfh)
feature.SetField('土地用途', tdyt)
outlayer_jzx.CreateFeature(feature)
feature.Destroy()
del feature
ring.Destroy()
polygon.Destroy()
def insert_sk(path_shp, name_shp):
gdal.SetConfigOption("SHAPE_ENCODING", "GBK")
driver = ogr.GetDriverByName('ESRI Shapefile')
os.chdir(path_shp)
if os.path.exists('%s.shp'%path_shp):
driver.DeleteDataSource('%s.shp'%name_shp)
outds_jzx = driver.CreateDataSource('%s.shp'%name_shp)
if outds_jzx == None:
print('创建文件失败!')
dst_osr = osr.SpatialReference()
dst_osr.ImportFromEPSG(4526)
outlayer_jzx = outds_jzx.CreateLayer(name_shp, dst_osr, geom_type=ogr.wkbPolygon)
featuredefn_jzx = outlayer_jzx.GetLayerDefn()
fieldDefn = ogr.FieldDefn('地块编号', ogr.OFTString)
fieldDefn.SetWidth(254)
outlayer_jzx.CreateField(fieldDefn)
fieldDefn = ogr.FieldDefn('地块名称', ogr.OFTString)
fieldDefn.SetWidth(254)
outlayer_jzx.CreateField(fieldDefn)
fieldDefn = ogr.FieldDefn('地块面积', ogr.OFTReal)
fieldDefn.SetWidth(16)
fieldDefn.SetPrecision(3)
outlayer_jzx.CreateField(fieldDefn)
fieldDefn = ogr.FieldDefn('图幅号', ogr.OFTString)
fieldDefn.SetWidth(254)
outlayer_jzx.CreateField(fieldDefn)
fieldDefn = ogr.FieldDefn('土地用途', ogr.OFTString)
fieldDefn.SetWidth(254)
outlayer_jzx.CreateField(fieldDefn)
return featuredefn_jzx, outds_jzx, outlayer_jzx