protected virtual void OnToolMouseDown( MapViewMouseButtonEventArgs args )
Protected Overridable Sub OnToolMouseDown( _ ByVal args As MapViewMouseButtonEventArgs _ )
Parameters
- args
- A MapViewMouseButtonEventArgs that contains the event data.
protected virtual void OnToolMouseDown( MapViewMouseButtonEventArgs args )
Protected Overridable Sub OnToolMouseDown( _ ByVal args As MapViewMouseButtonEventArgs _ )
public ProSnippetMapTool() { //Set the MapTool base class' OverlayControlID to the DAML id of your embeddable control in the constructor this.OverlayControlID = "ProAppModule1_EmbeddableControl1"; } protected override void OnToolMouseDown(MapViewMouseButtonEventArgs e) { if (e.ChangedButton == System.Windows.Input.MouseButton.Left) e.Handled = true; } protected override Task HandleMouseDownAsync(MapViewMouseButtonEventArgs e) { return QueuedTask.Run(() => { //assign the screen coordinate clicked point to the MapTool base class' OverlayControlLocation property. this.OverlayControlPositionRatio = e.ClientPoint; }); }
internal class GetMapCoordinates : MapTool { protected override void OnToolMouseDown(MapViewMouseButtonEventArgs e) { if (e.ChangedButton == System.Windows.Input.MouseButton.Left) e.Handled = true; //Handle the event args to get the call to the corresponding async method } protected override Task HandleMouseDownAsync(MapViewMouseButtonEventArgs e) { return QueuedTask.Run(() => { var pointSymbol = SymbolFactory.Instance.ConstructPointSymbol(ColorFactory.Instance.BlackRGB, 8); var layout = Project.Current.GetItems<LayoutProjectItem>().FirstOrDefault().GetLayout(); //Convert the clicked point in client coordinates to the corresponding map coordinates. var mapPoint = MapView.Active.ClientToMap(e.ClientPoint); ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(string.Format("X: {0} Y: {1} Z: {2}", mapPoint.X, mapPoint.Y, mapPoint.Z), "Map Coordinates"); //Get the corresponding layout point var mapFrame = layout.FindElement("New Map Frame") as MapFrame; var pointOnLayoutFrame = mapFrame.MapToPage(mapPoint); //Create a point graphic on the Layout. var cimGraphicElement = new CIMPointGraphic { Location = pointOnLayoutFrame, Symbol = pointSymbol.MakeSymbolReference() }; //Or use GraphicFactory var cimGraphicElement2 = GraphicFactory.Instance.CreateSimpleGraphic( pointOnLayoutFrame, pointSymbol); //At 2.x - LayoutElementFactory.Instance.CreateGraphicElement(layout, cimGraphicElement); ElementFactory.Instance.CreateGraphicElement(layout, cimGraphicElement); ElementFactory.Instance.CreateGraphicElement(layout, cimGraphicElement2); }); } }
internal class GetMapCoordinates : MapTool { protected override void OnToolMouseDown(MapViewMouseButtonEventArgs e) { if (e.ChangedButton == System.Windows.Input.MouseButton.Left) e.Handled = true; //Handle the event args to get the call to the corresponding async method } protected override Task HandleMouseDownAsync(MapViewMouseButtonEventArgs e) { return QueuedTask.Run(() => { //Convert the clicked point in client coordinates to the corresponding map coordinates. var mapPoint = MapView.Active.ClientToMap(e.ClientPoint); ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(string.Format("X: {0} Y: {1} Z: {2}", mapPoint.X, mapPoint.Y, mapPoint.Z), "Map Coordinates"); }); } }
Target Platforms: Windows 11, Windows 10