import ogr, os def createBuffer(inputfn, outputBufferfn, bufferDist): inputds = ogr.Open(inputfn) inputlyr = inputds.GetLayer() shpdriver = ogr.GetDriverByName('ESRI Shapefile') if os.path.exists(outputBufferfn): shpdriver.DeleteDataSource(outputBufferfn) outputBufferds = shpdriver.CreateDataSource(outputBufferfn) bufferlyr = outputBufferds.CreateLayer(outputBufferfn, geom_type=ogr.wkbPolygon) featureDefn = bufferlyr.GetLayerDefn() for feature in inputlyr: ingeom = feature.GetGeometryRef() geomBuffer = ingeom.Buffer(bufferDist) outFeature = ogr.Feature(featureDefn) outFeature.SetGeometry(geomBuffer) bufferlyr.CreateFeature(outFeature) def main(inputfn, outputBufferfn, bufferDist): createBuffer(inputfn, outputBufferfn, bufferDist) if __name__ == "__main__": inputfn = 'test.shp' outputBufferfn = 'testBuffer.shp' bufferDist = 10.0 main(inputfn, outputBufferfn, bufferDist)
此方法的缓冲功能的一层,并将它们保存到一个新的层
Copyright © Since 2014.
开源地理空间基金会中文分会
吉ICP备05002032号
Powered by TorCMS