日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ArcGIS AddIN开发:如何调用ArcMap中的选择工作空间的窗体

發布時間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ArcGIS AddIN开发:如何调用ArcMap中的选择工作空间的窗体 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

示例代碼如下:

public static IWorkspaceName BrowseWorkspace(int hwnd,out IWorkspace ws){IGxObjectFilterCollection ipFilters = new GxDialogClass();//IGxObjectFilter ipFilter1 = new GxFilterFeatureDatasetsClass(); //要素數據集 ,導出時,IFeatureClassConverter對象無法寫入Dataset中,此處隱藏掉//ipFilters.AddFilter(ipFilter1,false);IGxObjectFilter ifilt2 = new GxFilterWorkspacesClass(); //數據庫工作空間,此類比較含糊,不知道具體指啥ipFilters.AddFilter(ifilt2,false);IGxObjectFilter ipFilter3 = new GxFilterFileFolderClass(); //文件工作空間ipFilters.AddFilter(ipFilter3,false);IGxDialog pGDialog = (IGxDialog)ipFilters;pGDialog.RememberLocation = true;pGDialog.Title = "請選擇工作空間";pGDialog.AllowMultiSelect = false;IEnumGxObject pResultEnum = null;//IWorkspace ws = null;ws = null;IWorkspaceName wsn = null;if (pGDialog.DoModalOpen(hwnd, out pResultEnum) && pResultEnum != null){IGxObject gxObj = pResultEnum.Next();if (gxObj is IGxDatabase){IGxDatabase gxDB = gxObj as IGxDatabase;if (gxDB != null){ws = gxDB.Workspace;wsn = gxDB.WorkspaceName;} }else if (gxObj is IGxFolder){//Todo: figure out how to decide which workspace to get for// a particular folder (shapefile, raster etc.) //IEnumName enumName = ((IGxFolder)gxObj).FileSystemWorkspaceNames;// for now just assume we want a shapefile ...IWorkspaceFactory wsf = new ESRI.ArcGIS.DataSourcesFile.ShapefileWorkspaceFactoryClass();ws = wsf.OpenFromFile(((IGxFile)gxObj).Path, hwnd);IDataset pOutDataset = ws as IDataset;wsn = pOutDataset.FullName as IWorkspaceName;}else if (gxObj is IGxDataset){//如果是數據集工作空間IGxDataset gxDs = gxObj as IGxDataset;if (gxDs != null){ws = gxDs.Dataset.Workspace;wsn = gxDs.DatasetName.WorkspaceName;}}Marshal.FinalReleaseComObject(pResultEnum);}pGDialog.InternalCatalog.Close();Marshal.FinalReleaseComObject(pGDialog);return wsn;}

?

上述代碼可以拓展為:調用ArcMap的添加圖層窗口等

轉載于:https://www.cnblogs.com/DayDreamEveryWhere/p/5936237.html

總結

以上是生活随笔為你收集整理的ArcGIS AddIN开发:如何调用ArcMap中的选择工作空间的窗体的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。