Monday 28 March 2016

How to save buffer created with ArcObjects to a database?


I have created a buffer as follows


IMap map = axMapControl1.ActiveView.FocusMap;
IFeatureSelection fSelection = map.get_Layer(0) as IFeatureSelection;
ISelectionSet selSet = fSelection.SelectionSet;

ICursor cursor;
selSet.Search(null, true, out cursor);

IFeature feat = ((IFeatureCursor)cursor).NextFeature();
ITopologicalOperator topoOpr = feat.Shape as ITopologicalOperator;

IPolygon buffPolygon = topoOpr.Buffer(100) as IPolygon;

IActiveView activeView=axMapControl1.ActiveView;
IScreenDisplay screendispaly = activeView.ScreenDisplay;

screendispaly.StartDrawing(screendispaly.hDC, (System.Int32)esriScreenCache.esriAllScreenCaches);

ISimpleFillSymbol simFillSymbol = new SimpleFillSymbolClass() ;
simFillSymbol.Style = esriSimpleFillStyle.esriSFSSolid;
IRgbColor color = new RgbColorClass();
color.Red = 255;
simFillSymbol.Color = color;

ISymbol symbol = simFillSymbol as ISymbol;
screendispaly.SetSymbol(symbol);

screendispaly.DrawPolygon(buffPolygon);

Now I can see a buffer around a feature and I want to save it as a feature class into a database.


How can I do it?



Answer



//get the featureclass from first layer
IFeatureLayer featureLayer = (IFeatureLayer)map.get_Layer(0)
IFeatureClass featureClass = featureLayer.FeatureClass;
//create a new feature(row)
IFeature feature = featureClass.CreateFeature();

feature.Shape = buffPolygon ;
// Save feature to database
feature.Store();

Read Creating Features for detailed descriptions.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...