ESRI.ArcGIS.Display.IDisplayTransformation displayTransformation = screenDisplay.DisplayTransformation; ESRI.ArcGIS.Geometry.IPoint point = displayTransformation.ToMapPoint(x, y); screenDisplay.DrawPoint(point);
IElement elem = null; elem = point as IElement; IMap map = activeView.FocusMap; IGraphicsLayer graphicsLayer; graphicsLayer = new CompositeGraphicsLayerClass(); ((ILayer)graphicsLayer).Name = "New Layer"; (graphicsLayer as IGraphicsContainer).AddElement(elem, 0); map.AddLayer(graphicsLayer as ILayer);
ESRI.ArcGIS.Display.IRubberBand rubberBand = new ESRI.ArcGIS.Display.RubberPolygonClass(); ESRI.ArcGIS.Geometry.IGeometry geometry = rubberBand.TrackNew(screenDisplay, symbol); screenDisplay.SetSymbol(symbol); screenDisplay.DrawPolygon(geometry); screenDisplay.FinishDrawing(); IElement elem = null; IPolygonElement polygonElement = new PolygonElementClass(); elem = polygonElement as IElement; elem.Geometry = geometry as ESRI.ArcGIS.Geometry.IGeometry; IMap map = activeView.FocusMap; IGraphicsLayer graphicsLayer; if (map.LayerCount == 0) { graphicsLayer = new CompositeGraphicsLayerClass(); ((ILayer)graphicsLayer).Name = "New Layer"; (graphicsLayer as IGraphicsContainer).AddElement(elem, 0); map.AddLayer(graphicsLayer as ILayer); } else { ILayer layer = map.get_Layer(0); graphicsLayer = layer as IGraphicsLayer; (graphicsLayer as IGraphicsContainer).AddElement(elem, 0); } activeView.Refresh();
Solved! Go to Solution.
Hi
If you need to save it into a feature class you must create a feature class (there is a snippet for this) and use cursor to add the point.
If you need a graphic I do not think the line: "elem = point as IElement;" works (elem will be null).
It should be
IElement elem = new MarkerElementClass();
elem.geometry = point;
ArcMap have a default symbol but you better set a marker symbol too for the element.
Have Fun
Mody