ArcGIS Pro SDK (五)内容 7 应用程序选项

ArcGIS Pro SDK (五)内容 6 工程单位

目录

  • [ArcGIS Pro SDK (五)内容 6 工程单位](#ArcGIS Pro SDK (五)内容 6 工程单位)
    • [1 获取常规选项](#1 获取常规选项)
    • [2 将"常规选项"设置为使用自定义设置](#2 将“常规选项”设置为使用自定义设置)
    • [3 设置常规选项以使用默认值](#3 设置常规选项以使用默认值)
    • [4 获取下载选项](#4 获取下载选项)
    • [5 设置共享和发布的暂存位置](#5 设置共享和发布的暂存位置)
    • [6 设置 PPKX 的下载选项](#6 设置 PPKX 的下载选项)
    • [7 设置解压缩的下载选项其他](#7 设置解压缩的下载选项其他)
    • [8 设置离线地图的下载选项](#8 设置离线地图的下载选项)

环境:Visual Studio 2022 + .NET6 + ArcGIS Pro SDK 3.0

1 获取常规选项

csharp 复制代码
var startMode = ApplicationOptions.GeneralOptions.StartupOption;
var aprx_path = ApplicationOptions.GeneralOptions.StartupProjectPath;

var hf_option = ApplicationOptions.GeneralOptions.HomeFolderOption;
var folder = ApplicationOptions.GeneralOptions.CustomHomeFolder;

var gdb_option = ApplicationOptions.GeneralOptions.DefaultGeodatabaseOption;
var def_gdb = ApplicationOptions.GeneralOptions.CustomDefaultGeodatabase;

var tbx_option = ApplicationOptions.GeneralOptions.DefaultToolboxOption;
var def_tbx = ApplicationOptions.GeneralOptions.CustomDefaultToolbox;

var create_in_folder = ApplicationOptions.GeneralOptions.ProjectCreateInFolder;

2 将"常规选项"设置为使用自定义设置

csharp 复制代码
//设置应用程序使用自定义项目、主文件夹、gdb和toolbox在每种情况下,
//必须首先设置自定义路径,然后再设置"选项"。
//这确保了应用程序保持一致的状态。这与Pro UI上的行为是相同的。
if (string.IsNullOrEmpty(ApplicationOptions.GeneralOptions.StartupProjectPath))
  ApplicationOptions.GeneralOptions.StartupProjectPath = @"D:\data\usa.aprx";//先自定义项目路径
ApplicationOptions.GeneralOptions.StartupOption = StartProjectMode.WithDefaultProject;//其次选择使用它

if (string.IsNullOrEmpty(ApplicationOptions.GeneralOptions.CustomHomeFolder))
  ApplicationOptions.GeneralOptions.CustomHomeFolder = @"D:\home_folder";//先自定义主文件夹
ApplicationOptions.GeneralOptions.HomeFolderOption = OptionSetting.UseCustom;//其次选择使用它

if (string.IsNullOrEmpty(ApplicationOptions.GeneralOptions.CustomDefaultGeodatabase))
  ApplicationOptions.GeneralOptions.CustomDefaultGeodatabase = @"D:\data\usa.gdb";//先自定义gdb路径
ApplicationOptions.GeneralOptions.DefaultGeodatabaseOption = OptionSetting.UseCustom;//其次选择使用它

if (string.IsNullOrEmpty(ApplicationOptions.GeneralOptions.CustomDefaultToolbox))
  ApplicationOptions.GeneralOptions.CustomDefaultToolbox = @"D:\data\usa.tbx";//先自定义ToolBox路径
ApplicationOptions.GeneralOptions.DefaultToolboxOption = OptionSetting.UseCustom;//其次选择使用它

3 设置常规选项以使用默认值

csharp 复制代码
//默认选项的设置与"伴生"路径(项目、文件夹、gdb、工具箱等)的值无关。
//如果选项设置不使用路径值,则忽略它。这与Pro UI上的行为是相同的。
ApplicationOptions.GeneralOptions.StartupOption = StartProjectMode.ShowStartPage;
ApplicationOptions.GeneralOptions.HomeFolderOption = OptionSetting.UseDefault;
ApplicationOptions.GeneralOptions.DefaultGeodatabaseOption = OptionSetting.UseDefault;
ApplicationOptions.GeneralOptions.DefaultToolboxOption = OptionSetting.UseDefault;

//如果"companion"选项设置为默认选项,路径值可以(可选)设置为null。
if (ApplicationOptions.GeneralOptions.StartupOption != StartProjectMode.WithDefaultProject)
  ApplicationOptions.GeneralOptions.StartupProjectPath = null;
if (ApplicationOptions.GeneralOptions.HomeFolderOption == OptionSetting.UseDefault)
  ApplicationOptions.GeneralOptions.CustomHomeFolder = null;
if (ApplicationOptions.GeneralOptions.DefaultGeodatabaseOption == OptionSetting.UseDefault)
  ApplicationOptions.GeneralOptions.CustomDefaultGeodatabase = null;
if (ApplicationOptions.GeneralOptions.DefaultToolboxOption == OptionSetting.UseDefault)
  ApplicationOptions.GeneralOptions.CustomDefaultToolbox = null;

4 获取下载选项

csharp 复制代码
var staging = ApplicationOptions.DownloadOptions.StagingLocation;

var ppkx_loc = ApplicationOptions.DownloadOptions.UnpackPPKXLocation;
var ask_ppkx_loc = ApplicationOptions.DownloadOptions.AskForUnpackPPKXLocation;

var other_loc = ApplicationOptions.DownloadOptions.UnpackOtherLocation;
var ask_other_loc = ApplicationOptions.DownloadOptions.AskForUnpackOtherLocation;
var use_proj_folder = ApplicationOptions.DownloadOptions.UnpackOtherToProjectLocation;

var offline_loc = ApplicationOptions.DownloadOptions.OfflineMapsLocation;
var ask_offline_loc = ApplicationOptions.DownloadOptions.AskForOfflineMapsLocation;
var use_proj_folder_offline = ApplicationOptions.DownloadOptions.OfflineMapsToProjectLocation;

5 设置共享和发布的暂存位置

csharp 复制代码
ApplicationOptions.DownloadOptions.StagingLocation = @"D:\data\staging";

6 设置 PPKX 的下载选项

csharp 复制代码
//选项是互斥的。

//设置ApplicationOptions.DownloadOptions.AskForUnpackPPKXLocation = true 接替
//ApplicationOptions.DownloadOptions.UnpackPPKXLocation中的任何值,并提示用户进行解包。
//ApplicationOptions.DownloadOptions.UnpackPPKXLocation的值将不受影响并被忽略。
//这与Pro UI上的行为是相同的。
ApplicationOptions.DownloadOptions.AskForUnpackPPKXLocation = true;//override location

//将ApplicationOptions.DownloadOptions.UnpackPPKXLocation设置为任何位置会覆盖
//ApplicationOptions.DownloadOptions.AskForUnpackPPKXLocation并将其设置为false。
//这与Pro UI上的行为是相同的。
ApplicationOptions.DownloadOptions.UnpackPPKXLocation = @"D:\data\for_ppkx";

//或者,如果ApplicationOptions.DownloadOptions.UnpackPPKXLocation已经包含一个有效的路径,
//则显式地将ApplicationOptions.DownloadOptions.AskForUnpackPPKXLocation设置为false,
//以使用UnpackPPKXLocation
if (!string.IsNullOrEmpty(ApplicationOptions.DownloadOptions.UnpackPPKXLocation))
  ApplicationOptions.DownloadOptions.AskForUnpackPPKXLocation = false;

7 设置解压缩的下载选项其他

csharp 复制代码
//解包其他设置控制除ppkx或aptx之外的任何内容的解包。选项是互斥的。

//设置ApplicationOptions.DownloadOptions.UnpackOtherLocation显式地将
//ApplicationOptions.DownloadOptions.AskForUnpackOtherLocation和
//Applicationoptions.DownloadOptions.UnpackOtherToProjectLocation设置为false
//注意:默认值通常是<My Documents>\ArcGIS\Packages,而不是null。
//这与Pro UI上的行为是相同的。
ApplicationOptions.DownloadOptions.UnpackOtherLocation = @"D:\data\for_other";

//或者......要使用已经存储在UnpackOtherLocation中的位置作为默认值而不改变它,需要显式地将
//ApplicationOptions.DownloadOptions.AskForUnpackOtherLocation和
//ApplicationOptions.DownloadOptions.UnpackOtherToProjectLocation设置为false。
//这与Pro UI上的行为是相同的。
if (!string.IsNullOrEmpty(ApplicationOptions.DownloadOptions.UnpackOtherLocation))
{
  ApplicationOptions.DownloadOptions.AskForUnpackOtherLocation = false;
  ApplicationOptions.DownloadOptions.UnpackOtherToProjectLocation = false;
}

//将ApplicationOptions.DownloadOptions.AskForUnpackOtherLocation设置为true
//会覆盖所有UnpackOtherLocation的值,并将
//ApplicationOptions.DownloadOptions.UnpackOtherToProjectLocation设置为false。
//这与Pro UI上的行为是相同的。
ApplicationOptions.DownloadOptions.AskForUnpackOtherLocation = true;

//将ApplicationOptions.DownloadOptions.UnpackOtherToProjectLocation设置为true
//会覆盖所有UnpackOtherLocation的值,并将
//ApplicationOptions.DownloadOptions.AskForUnpackOtherLocation设置为false。
//这与Pro UI上的行为是相同的。
ApplicationOptions.DownloadOptions.UnpackOtherToProjectLocation = false;

8 设置离线地图的下载选项

csharp 复制代码
//OfflineMaps设置控制将脱机的地图内容复制到本地计算机上的位置。选项是互斥的。

//显式设置ApplicationOptions.DownloadOptions.OfflineMapsLocation,将
//ApplicationOptions.DownloadOptions.AskForOfflineMapsLocation和
//ApplicationOptions.DownloadOptions.OfflineMapsToProjectLocation切换为false
//注意:默认通常是<My Documents>\ArcGIS\OfflineMaps, * * not* * null。
//这与Pro UI上的行为是相同的。
ApplicationOptions.DownloadOptions.OfflineMapsLocation = @"D:\data\for_offline";

//或者......要使用已经存储在OfflineMapsLocation中的位置作为默认位置,而不更改它,
//将ApplicationOptions.DownloadOptions.AskForOfflineMapsLocation和
//ApplicationOptions.DownloadOptions.OfflineMapsToProjectLocation显式设置为false
if (!string.IsNullOrEmpty(ApplicationOptions.DownloadOptions.OfflineMapsLocation))
{
  ApplicationOptions.DownloadOptions.AskForOfflineMapsLocation = false;
  ApplicationOptions.DownloadOptions.OfflineMapsToProjectLocation = false;
}

//将ApplicationOptions.DownloadOptions.AskForOfflineMapsLocation设置为true
//会覆盖所有的OfflineMapsLocation值,并将
//ApplicationOptions.DownloadOptions.OfflineMapsToProjectLocation设置为false。
//这与Pro UI上的行为是相同的。
ApplicationOptions.DownloadOptions.AskForOfflineMapsLocation = true;

//将ApplicationOptions.DownloadOptions.OfflineMapsToProjectLocation设置为true
//会覆盖所有的OfflineMapsLocation值,并将
//ApplicationOptions.DownloadOptions.AskForOfflineMapsLocation设置为false。
//这与Pro UI上的行为是相同的。
ApplicationOptions.DownloadOptions.OfflineMapsToProjectLocation = true;
相关推荐
江沉晚呤时7 小时前
在 C# 中调用 Python 脚本:实现跨语言功能集成
python·microsoft·c#·.net·.netcore·.net core
Oberon7 小时前
Avalonia硬配.NET Framework 4.8
c#·.net·avalonia·.net framework
喵叔哟10 小时前
3. 【Blazor全栈开发实战指南】--Blazor是什么?为什么选择Blazor?
c#·.netcore
钢铁男儿12 小时前
C# 接口(接口可以继承接口)
java·算法·c#
__风__15 小时前
跨库更新ArcGIS 某个Geodatabase FeatureClass
arcgis
小码编匠20 小时前
C# 的西门子数控系统 OPCUA 数据采集开发从零入门
后端·数据分析·c#
孜然卷k20 小时前
C#项目 在Vue/React前端项目中 使用使用wkeWebBrowser引用并且内部使用iframe网页外链 页面部分白屏
前端·vue.js·react.js·c#
专注VB编程开发20年21 小时前
C# VB.NET多进程-管道通信,命名管道(Named Pipes)
开发语言·c#·.net
唐青枫1 天前
C#.NET 泛型详解
c#·.net
阿蒙Amon1 天前
C#日期、时间和时区:全球化应用的时间处理艺术
java·服务器·c#