ARCGIS PRO SDK VB2022 OpenItemDialog的使用

博客介绍了浏览对话框的功能,包括可选择项目项等。详细说明了 AlwaysUseInitialLocation、BrowseFilter 等参数的作用,还提及了调用方法 ShowDialog,以及可实现打开项目工程和地理数据库内容等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        打开“浏览”对话框,并允许您选择一个或多个项目项、门户项或 本地磁盘或网络磁盘中可用的项目。

Dim openDlg = New OpenItemDialog
'打开项目对话框
openDlg.Title = "打开项目"
openDlg.Filter = ItemFilters.Composite_AddToMap
Dim result1 As Boolean = openDlg.ShowDialog
If result1 = True Then
    Dim Item = openDlg.Items.First()
    '返回全路径
    Dim sjk_qtj = Item.Path
    '返回数据库
    Dim sjk_tj = Item.PhysicalPath
    '返回要素类
    Dim sjk_ysl = Item.Name
 End If

详解:

  1. AlwaysUseInitialLocation:如果指定,请始终使用 InitialLocation。如果未指定,则初始位置可能是使用当前筛选器打开的最后一个位置。 BrowseFilter:获取或设置用于将“浏览”对话框中列出的项限制为子集的 BrowseProjectFilter 适用于特定任务。
  2. Filter:获取或设置用于将“浏览”对话框中列出的项限制为子集的筛选器 适用于特定任务。
  3. InitialLocation:获取或设置要在“浏览”对话框中显示的初始位置。 
  4. Items:获取在“浏览”对话框中选择的项。 
  5. MultiSelect:获取和设置“浏览”对话框是否支持多个项选择。  
  6. Title:获取或设置“浏览”对话框的标题。

调用方法:ShowDialog

一:打开项目工程

dim addToProjectDialog as OpenItemDialog  = new OpenItemDialog()
With addToProjectDialog
     .Title = "加载工程"
     .InitialLocation = "C:\Data\NewYork\Counties\Maps"    '起始位置
     .MultiSelect = true                                   '允许多选
     .Filter = ItemFilters.Composite_Maps_Import           '过滤类型
End With
dim  ok as Boolean = addToMapDialog.ShowDialog()
if ok = true then
    dim selectedItems as IEnumerable(of Item)  = addToMapDialog.Items
    for each selectedItem as Item  in selectedItems
        MapFactory.Instance.CreateMapFromItem(selectedItem)
    next 
End if

二:打开地理数据库内容

dim openDlg = new OpenItemDialog
With openDlg
     .Title = "选择要素类"
     .InitialLocation = "C:\Data"
     .MultiSelect = false         
     .BrowseFilter = BrowseProjectFilter.GetFilter(ArcGIS.Desktop.Catalog.ItemFilters.GeodatabaseItems_All)
End with

DIM bool AS Boolean = openDlg.ShowDialog()
if  openDlg.Items.Count = 0 THEN
    EXIT SUB
END IF
await QueuedTask.Run(SUB()
                     DIM item = openDlg.Items.First()
                     if ItemFactory.Instance.CanGetDataset(item)=TRUE THEN
                         DIM  ds = ItemFactory.Instance.GetDataset(item))
                         DIM name = ds.GetName()
                         DIM path = ds.GetPath()
                         if ds is ArcGIS.Core.Data.FeatureClass =TRUE THEN
                              fc=DS
                              DIM featureLayerParams = new FeatureLayerCreationParams(fc)
                              MapMemberIndex = 0
                          END IF
                          DIM  layer = LayerFactory.Instance.CreateLayer(OF FeatureLayer)(featureLayerParams, MapView.Active.Map)
                      END IF
                  END SUB)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值