• 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;
    
    namespace ProAppModule1
    {
    
        internal class Button2 : Button
        {
    
            public static async Task<string> GetDataSource(BasicFeatureLayer theLayer)
    
            {
    
                try
    
                {
    
                    return await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
    
                    {
    
                        var inTable = theLayer.Name;
    
                        var table = theLayer.GetTable();
    
                        var dataStore = table.GetDatastore();
    
                        var workspaceNameDef = dataStore.GetConnectionString();
    
                        var workspaceName = workspaceNameDef.Split('=')[1];
    
                        var fullSpec = System.IO.Path.Combine(workspaceName, inTable);
    
                        return fullSpec;
    
                    });
    
                }
    
                catch (Exception ex)
    
                {
    
                    MessageBox.Show(ex.ToString());
    
                    return string.Empty;
    
                }
    
            }
    
            protected override async void OnClick()
            {
                var mv = MapView.Active;
    
    
    
                var lyrs = mv.Map.Layers;
    
                foreach (var lyr in lyrs)
                {
                    if (lyr is FeatureLayer)
                    {
                        var datasource = await GetDataSource(lyr as BasicFeatureLayer);
                        MessageBox.Show(datasource);
                    }
    
                }
            }
    
        }
    
    
    
    }
  • 相关阅读:
    初探动态规划(DP)
    高精度压位
    Poi写文件时报java.io.IOException: Read error
    mysql合并和时间函数
    线程池子线程先执行再执行主线程
    linux常用命令
    使用线程池应该注意的问题
    分页查询千万级数据慢
    待簳的题......
    记录脑残失误,让达摩克利斯之剑永远高悬
  • 原文地址:https://www.cnblogs.com/gisoracle/p/12465781.html
Copyright © 2020-2023  润新知