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;
相关推荐
bluefox19794 小时前
使用 Oracle.DataAccess.Client 驱动 和 OleDB 调用Oracle 函数的区别
开发语言·c#
鲤籽鲲5 小时前
C# MethodTimer.Fody 使用详解
开发语言·c#·mfc
工业3D_大熊6 小时前
3D可视化引擎HOOPS Luminate场景图详解:形状的创建、销毁与管理
java·c++·3d·docker·c#·制造·数据可视化
yngsqq6 小时前
c#使用高版本8.0步骤
java·前端·c#
疯狂学习GIS7 小时前
ArcGIS填补面图层的细小空白并删除主体部分外的零散部分
arcgis·gis·学术工作效率·gis数据
hccee9 小时前
C# IO文件操作
开发语言·c#
sinat_3842410910 小时前
在有网络连接的机器上打包 electron 及其依赖项,在没有网络连接的机器上安装这些离线包
javascript·arcgis·electron
广煜永不挂科11 小时前
Devexpress.Dashboard的调用二义性
c#·express
GIS 数据栈11 小时前
每日一书 《基于ArcGIS的Python编程秘笈》
开发语言·python·arcgis
初九之潜龙勿用13 小时前
C#校验画布签名图片是否为空白
开发语言·ui·c#·.net