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;
相关推荐
吾与谁归in3 小时前
【C#联合halcon实现绘制ROI功能】
c#·halcon·roi
ling1s4 小时前
C#核心(18)面向对象多态vob
java·开发语言·c#
月巴月巴白勺合鸟月半5 小时前
一个C#开发的APP
c#·web
我曾经是个程序员6 小时前
C#File文件基础操作大全
开发语言·c#
三天不学习6 小时前
C# 中的记录类型简介 【代码之美系列】
后端·c#·微软技术·record·记录类型
Artistation Game7 小时前
一、c#基础
游戏·unity·c#·游戏引擎
chen_2277 小时前
kanzi3.6.10 窗口插件-查找绑定信息
c#·kanzi
新中地GIS开发老师9 小时前
《Vue进阶教程》(12)ref的实现详细教程
前端·javascript·vue.js·arcgis·前端框架·地理信息科学·地信
Murphy202310 小时前
.net4.0 调用API(form-data)上传文件及传参
开发语言·c#·api·httpwebrequest·form-data·uploadfile·multipart/form-