zoukankan      html  css  js  c++  java
  • ArcGIS Pro二次开发-放大缩小工具

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using ArcGIS.Core.CIM;
    using ArcGIS.Core.Data;
    using ArcGIS.Core.Geometry;
    using ArcGIS.Desktop.Catalog;
    using ArcGIS.Desktop.Core;
    using ArcGIS.Desktop.Editing;
    using ArcGIS.Desktop.Extensions;
    using ArcGIS.Desktop.Framework;
    using ArcGIS.Desktop.Framework.Contracts;
    using ArcGIS.Desktop.Framework.Dialogs;
    using ArcGIS.Desktop.Framework.Threading.Tasks;
    using ArcGIS.Desktop.Mapping;
    
    
    
    using System.Windows.Input;
    
    
    
    
    
    namespace ProAppModule1
    {
        internal class MapToolSelect : MapTool
        {
            public MapToolSelect()
    
            {
    
               
    
            }
            protected override Task OnToolActivateAsync(bool active)
    
            {
    
                return base.OnToolActivateAsync(active);
    
            }
    
    
    
            protected override void OnToolMouseDown(MapViewMouseButtonEventArgs e)
    
            {
    
                // On mouse down check if the mouse button pressed is:
    
                // the left mouse button to handle zoom in
    
                // or the right mouse button to handle zoom out
    
                // If it is handle the event.
    
                switch (e.ChangedButton)
    
                {
    
                    case MouseButton.Right:
    
                        e.Handled = true;
    
                        break;
    
                    case MouseButton.Left:
    
                        e.Handled = true;
    
                        break;
    
                }
    
            }
    
    
    
            protected override Task HandleMouseDownAsync(MapViewMouseButtonEventArgs e)
    
            {
    
                // Get the map coordinates from the click point and change the Camera to zoom in or out.
    
                return QueuedTask.Run(() =>
    
                {
    
                    var mapClickPnt = MapView.Active.ClientToMap(e.ClientPoint);
    
                    ActiveMapView.LookAt(mapClickPnt, TimeSpan.FromSeconds(1));
    
                    // zoom out
    
                    if (e.ChangedButton == MouseButton.Right)
    
                    {
    
                        ActiveMapView.ZoomOutFixed(TimeSpan.FromSeconds(1));
    
                    }
    
                    // zoom in
    
                    else if (e.ChangedButton == MouseButton.Left)
    
                    {
    
                        ActiveMapView.ZoomInFixed(TimeSpan.FromSeconds(1));
    
                    }
    
                });
    
            }
    
    
    
            protected override void OnToolKeyDown(MapViewKeyEventArgs k)
    
            {
    
                // using key up and down in order to zoom out and in
    
                // if those keys are used we need to mark them as handled
    
                if (k.Key == Key.Up || k.Key == Key.Down)
    
                    k.Handled = true;
    
                base.OnToolKeyDown(k);
    
            }
    
    
    
            protected override Task HandleKeyDownAsync(MapViewKeyEventArgs k)
    
            {
    
                // only called when 'handled' in OnToolKeyDown
    
                if (k.Key == Key.Up)
    
                {
    
                    // Key.Up => zoom out
    
                    return ActiveMapView.ZoomOutFixedAsync(TimeSpan.FromSeconds(1));
    
                }
    
                // Key.Down => zoom in
    
                //else if (k.Key == Key.Down)
    
                {
    
                    return ActiveMapView.ZoomInFixedAsync(TimeSpan.FromSeconds(1));
    
                }
               
    
            }
    
        }
    
    
    }
  • 相关阅读:
    db2新添用户
    merge的用法
    oracle常用命令
    oracle建用户
    获得当前时间的PRO
    全部快捷方式图标变成LNK文件怎么办
    随机生成数据的三种方法
    db2查看表空间
    db2疑难解决
    AVG()和to_date()函数的使用
  • 原文地址:https://www.cnblogs.com/gisoracle/p/12462626.html
Copyright © 2011-2022 走看看