import ogr, os def poly2line(input_poly,output_line): source_ds = ogr.Open(input_poly) source_layer = source_ds.GetLayer() # polygon2geometryCollection geomcol = ogr.Geometry(ogr.wkbGeometryCollection) for feat in source_layer: geom = feat.GetGeometryRef() ring = geom.GetGeometryRef(0) geomcol.AddGeometry(ring) # geometryCollection2shp shpDriver = ogr.GetDriverByName("ESRI Shapefile") if os.path.exists(output_line): shpDriver.DeleteDataSource(output_line) outDataSource = shpDriver.CreateDataSource(output_line) outLayer = outDataSource.CreateLayer(output_line, geom_type=ogr.wkbMultiLineString) featureDefn = outLayer.GetLayerDefn() outFeature = ogr.Feature(featureDefn) outFeature.SetGeometry(geomcol) outLayer.CreateFeature(outFeature) def main(input_poly,output_line): poly2line(input_poly,output_line) if __name__ == "__main__": input_poly = 'test_polygon.shp' output_line = 'test_line.shp' main(input_poly,output_line)
这个方法将多边形形状文件转换为线形状文件
关注公众号
获取免费资源
Copyright © Since 2014.
开源地理空间基金会中文分会
吉ICP备05002032号
Powered by TorCMS