public void AddPolygon(IFeatureLayer featureLayer, IFeatureWorkspace featureworkspace, string dir)
{
try
{
//Define vertices
GeoJson geoJson = new GeoJson();
_featureInJSON = geoJson.readGeoJsonFile(dir);
IMap map = ArcMap.Document.FocusMap;
AddGraphicToMap(map);
IWorkspaceEdit editWorkspace = featureworkspace as IWorkspaceEdit;
editWorkspace.StartEditing(true);
editWorkspace.StartEditOperation();
for (int j = 0; j < _featureInJSON.features.Count; j++)
{
IPoint pPoint1 = new ESRI.ArcGIS.Geometry.Point();
IPoint pPoint2 = new ESRI.ArcGIS.Geometry.Point();
IPoint pPoint3 = new ESRI.ArcGIS.Geometry.Point();
IPoint pPoint4 = new ESRI.ArcGIS.Geometry.Point();
pPoint1.PutCoords(_featureInJSON.features[j].geometry.rings[0, 0, 0], _featureInJSON.features[j].geometry.rings[0, 0, 1]);
pPoint2.PutCoords(_featureInJSON.features[j].geometry.rings[0, 1, 0], _featureInJSON.features[j].geometry.rings[0, 1, 1]);
pPoint3.PutCoords(_featureInJSON.features[j].geometry.rings[0, 2, 0], _featureInJSON.features[j].geometry.rings[0, 2, 1]);
pPoint4.PutCoords(_featureInJSON.features[j].geometry.rings[0, 3, 0], _featureInJSON.features[j].geometry.rings[0, 3, 1]);
IPointCollection pPolygon = new Polygon();
IPointCollection pPointCollection = pPolygon as IPointCollection;
//Add the vertices of the polygon
pPointCollection.AddPoints(1, ref pPoint1);
pPointCollection.AddPoints(1, ref pPoint2);
pPointCollection.AddPoints(1, ref pPoint3);
pPointCollection.AddPoints(1, ref pPoint4);
((IPolygon)pPolygon).Close();
IFeature iFeature = featureLayer.FeatureClass.CreateFeature();
iFeature.Shape = (IPolygon)pPolygon;
iFeature.Store();
//Feature cursor used to loop through all features in feature class, optionally a query filter can be used.
int num = featureLayer.FeatureClass.FindField(_featureInJSON.fieldAliases.Char_count);
iFeature.set_Value(num, _featureInJSON.features[j].attributes.Char_count.ToString());
num = featureLayer.FeatureClass.FindField(_featureInJSON.fieldAliases.Filename);
iFeature.set_Value(num, _featureInJSON.features[j].attributes.Filename);
//num = featureLayer.FeatureClass.FindField(_featureInJSON.fieldAliases.Mass_centerX);
iFeature.set_Value(8, _featureInJSON.features[j].attributes.Mass_centerX.ToString());
//num = featureLayer.FeatureClass.FindField(_featureInJSON.fieldAliases.Mass_centerY);
iFeature.set_Value(9, _featureInJSON.features[j].attributes.Mass_centerY.ToString());
//num = featureLayer.FeatureClass.FindField(_featureInJSON.fieldAliases.OBJECTID);
//iFeature.set_Value(num, _featureInJSON.features[j].attributes.OBJECTID.ToString());
//num = featureLayer.FeatureClass.FindField(_featureInJSON.fieldAliases.Orientation);
iFeature.set_Value(4, _featureInJSON.features[j].attributes.OBJECTID.ToString());
//num = featureLayer.FeatureClass.FindField(_featureInJSON.fieldAliases.Susp_char_count);
iFeature.set_Value(7, _featureInJSON.features[j].attributes.Susp_char_count.ToString());
num = featureLayer.FeatureClass.FindField(_featureInJSON.fieldAliases.Susp_text);
iFeature.set_Value(num, _featureInJSON.features[j].attributes.Susp_text.ToString());
num = featureLayer.FeatureClass.FindField(_featureInJSON.fieldAliases.Text);
iFeature.set_Value(num, _featureInJSON.features[j].attributes.Text);
iFeature.Store();
}
IFeatureCursor fcCursor = featureLayer.FeatureClass.Update(null, true);
//Stop the operation and provide a name to add to the operation stack.
editWorkspace.StartEditOperation();
//Stop editing and save the edits.
editWorkspace.StopEditing(true);
map.AddLayer(featureLayer);
}
catch (Exception e)
{
Log.WriteLine("AddPolygon: " + e.Message);
}
}