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()
    
            {
    
                IsSketchTool = true;
    
                SketchType = SketchGeometryType.Circle;
    
                SketchOutputMode = SketchOutputMode.Screen;
    
            }
    
    
    
            protected override Task OnToolActivateAsync(bool active)
    
            {
    
                return base.OnToolActivateAsync(active);
    
            }
    
    
    
            protected override async Task<bool> OnSketchCompleteAsync(Geometry geometry)
    
            {
                var mv = MapView.Active;
    
                var identifyResult = await QueuedTask.Run(() =>
    
                {
    
                    var sb = new StringBuilder();
    
    
    
                    // Get the features that intersect the sketch geometry. 
    
                    var features = mv.GetFeatures(geometry);
    
    
    
                    // Get all layer definitions
    
                    var lyrs = mv.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>();
    
                    foreach (var lyr in lyrs)
    
                    {
    
                        var fCnt = features.ContainsKey(lyr) ? features[lyr].Count : 0;
    
                        sb.AppendLine($@"{fCnt} {(fCnt == 1 ? "record" : "records")} for {lyr.Name}");
    
                    }
    
                    return sb.ToString();
    
                });
    
                MessageBox.Show(identifyResult);
    
                return true;
    
            }
    
        }
    
    
    }
  • 相关阅读:
    MySQL高级【一】索引和视图
    SpringMVC【八】文件上传和下载
    SpringMVC【七】拦截器
    SpringMVC【六】AJAX
    python
    SqlServer优化之批量插入(SqlBulkCopy、表值参数)
    SQL中merge into用法
    Asp.Net MVC Filter权限过滤使用说明 FilterConfig类
    .NET-ORM框架EF-Code First代码优先
    asp.net mvc框架之EF的使用
  • 原文地址:https://www.cnblogs.com/gisoracle/p/12462762.html
Copyright © 2011-2022 走看看