/// <summary> /// 创建一个Buffer file,用于获取最小高度,juli是buffer的距离 /// </summary> /// <param name="infile"></param> /// <param name="juli"></param> /// <returns></returns> private static OSGeo.OGR.Layer bufferFile(OSGeo.OGR.Layer inLayer, int juli) { string buf = inLayer.GetName() + "buf"; shpDataSet.deleteLayerByName(buf); OSGeo.OGR.Layer bufferLayer = shpDataSet.CreateLayer(buf, inLayer.GetSpatialRef(), inLayer.GetGeomType(), null); int featCount = inLayer.GetFeatureCount(0); for (int i = 0; i < featCount; i++) { OSGeo.OGR.Feature inFeat = inLayer.GetFeature(i); OSGeo.OGR.Geometry inGeom = inFeat.GetGeometryRef(); OSGeo.OGR.Geometry outGeom = inGeom.Buffer(juli, 0); OSGeo.OGR.Feature outFeat = new OSGeo.OGR.Feature(new OSGeo.OGR.FeatureDefn("")); outFeat.SetGeometry(outGeom); bufferLayer.CreateFeature(outFeat); inFeat.Dispose(); outFeat.Dispose(); } return(bufferLayer); }