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;
相关推荐
津津有味道3 小时前
ISO18000-6C协议UHF6C超高频RFID读写C#源码
c#·uhf6c·超高频·iso18000-6c
白雪公主的后妈3 小时前
Auto CAD二次开发——创建圆弧对象
c#·cad二次开发·创建圆弧对象
weixin_307779136 小时前
C#程序实现将MySQL的存储过程转换为Azure Synapse Dedicated SQL Pool的T-SQL存储过程
c#·自动化·云计算·运维开发·azure
"菠萝"7 小时前
C#知识学习-018(方法参数传递)
学习·c#·1024程序员节
CiLerLinux8 小时前
第三章 FreeRTOS 任务相关 API 函数
开发语言·单片机·物联网·c#
.NET修仙日记8 小时前
C#/.NET 微服务架构:从入门到精通的完整学习路线
微服务·c#·.net·.net core·分布式架构·技术进阶
歪歪10018 小时前
在C#中详细介绍一下Visual Studio中如何使用数据可视化工具
开发语言·前端·c#·visual studio code·visual studio·1024程序员节
Eiceblue18 小时前
如何通过 C# 高效读写 Excel 工作表
c#·visual studio·1024程序员节
张人玉18 小时前
WPF 触发器详解:定义、种类与示例
c#·wpf·1024程序员节·布局控件
阿登林1 天前
C# .NET Core中Chart图表绘制与PDF导出
c#·1024程序员节