arcgis 线自动构面的方法一例
arcgis 线自动构面的方法一例
public class CreatePolygonTools { //自动构造面 public static bool AutoCompleteFromGeometries(GeometryBagClass enumGeoLines, IFeatureClass fc_polygon) { bool rbc = false; IGeoDataset geoDS = fc_polygon as IGeoDataset; IEnvelope processingBounds = geoDS.Extent; IWorkspace ws = (fc_polygon as IDataset).Workspace; ISelectionSet selSet; IInvalidArea invalidArea = new InvalidAreaClass(); // IFeatureConstruction pfeatBuild = new FeatureConstructionClass(); pfeatBuild.AutoCompleteFromGeometries(fc_polygon, processingBounds, enumGeoLines, invalidArea, 0.0001, ws, out selSet); // rbc=true; return rbc; } //构面 从线图层 public static bool ConstructPolygons(IFeatureClass fc_line, IFeatureClass fc_polygon) { bool rbc = false; ICancelOperation cancel = new CancelOperationClass(); // IFeatureCursor pLineSrc = fc_line.Search(null, false); IFeatureConstruction pfeatBuild = new FeatureConstructionClass(); pfeatBuild.ConstructPolygonsFromFeaturesFromCursor(cancel, fc_polygon, null, false, false, pLineSrc, null, 0.001, null); // if (pLineSrc != null) { TokayWorkspace.ComRelease(pLineSrc); pLineSrc = null; } rbc = true; return rbc; } //构面 选中要素集 public bool ConstructPolygonsFromFeatures(IEnumFeature pEnumFeature, IFeatureClass fc_polygon) { bool rbc = false; ICancelOperation cancel = new CancelOperationClass(); // IFeatureConstruction pfeatBuild = new FeatureConstructionClass(); pfeatBuild.ConstructPolygonsFromFeatures(cancel, fc_polygon, null, false, false, pEnumFeature, null, 0.001, null); // rbc = true; return rbc; } } public class CancelOperationClass : ICancelOperation { private Boolean isCancelled = false; public Boolean IsCancelled { get { return isCancelled; } } public void Cancel() { isCancelled = true; } }