ArcGIS Pro SDK (五)內容 5 元數據

ArcGIS Pro SDK (五)內容 5 收藏夾

目錄

  • ArcGIS Pro SDK (五)內容 5 收藏夾
    • 1 獲取其 IMetadata 接口
    • 2 獲取項目的元數據:獲取XML
    • 3 設置項目的元數據:設置XML項
    • 4 檢查元數據是否可以編輯:可以編輯
    • 5 使用項目的當前屬性更新元數據:同步
    • 6 從源項目的元數據復制元數據:復制元數據從項目
    • 7 從當前項目的元數據中刪除某些內容:刪除元數據內容
    • 8 使用導入的元數據更新元數據 - 輸入路徑可以是包含元數據的項目的路徑,也可以是 XML 文件的 URI:導入元數據
    • 9 使用導入的元數據更新元數據:導入元數據
    • 10 導出當前選定項目的元數據:導出元數據
    • 11 導出當前選定項目的元數據:導出元數據
    • 12 將當前項目的元數據另存為 XML:將元數據另存為 XML
    • 13 將當前項目的元數據另存為 HTML:將元數據另存為HTML
    • 14 使用自定義 XSLT 保存當前項目的元數據:保存元數據作為使用自定義 XSLT
    • 15 升級當前項目的元數據:升級元數據

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

1 獲取其 IMetadata 接口

Item gdbItem = ItemFactory.Instance.Create(@"C:\projectAlpha\GDBs\regionFive.gdb");
IMetadata gdbMetadataItem = gdbItem as IMetadata;

2 獲取項目的元數據:獲取XML

string gdbXMLMetadataXmlAsString = string.Empty;
gdbXMLMetadataXmlAsString = await QueuedTask.Run(() => gdbMetadataItem.GetXml());
//檢查元數據
if (!string.IsNullOrEmpty(gdbXMLMetadataXmlAsString))
{//使用元數據
}

3 設置項目的元數據:設置XML項

await QueuedTask.Run(() =>{var xml = System.IO.File.ReadAllText(@"E:\Data\Metadata\MetadataForFeatClass.xml");//如果元數據無法更改,是否會拋出InvalidOperationException異常//所以先檢查“CanEdit”所以先選擇“CanEdit”if (featureClassMetadataItem.CanEdit())featureClassMetadataItem.SetXml(xml);});

4 檢查元數據是否可以編輯:可以編輯

bool canEdit1;
//在調用SetXml之前調用CanEdit
await QueuedTask.Run(() => canEdit1 = metadataItemToCheck.CanEdit());

5 使用項目的當前屬性更新元數據:同步

string syncedMetadataXml = string.Empty;
await QueuedTask.Run(() => syncedMetadataXml = metadataItemToSync.Synchronize());

6 從源項目的元數據復制元數據:復制元數據從項目

Item featureClassItem = ItemFactory.Instance.Create(@"C:\projectAlpha\GDBs\regionFive.gdb\SourceFeatureClass");
await QueuedTask.Run(() => metadataItemImport.CopyMetadataFromItem(featureClassItem));

7 從當前項目的元數據中刪除某些內容:刪除元數據內容

Item featureClassWithMetadataItem = ItemFactory.Instance.Create(@"C:\projectBeta\GDBs\regionFive.gdb\SourceFeatureClass");
//從項目的元數據中刪除縮略圖內容
await QueuedTask.Run(() => featureClassWithMetadataItem.DeleteMetadataContent(MDDeleteContentOption.esriMDDeleteThumbnail));

8 使用導入的元數據更新元數據 - 輸入路徑可以是包含元數據的項目的路徑,也可以是 XML 文件的 URI:導入元數據

//輸入路徑可以是元數據項的路徑,也可以是XML文件的URI
IMetadata metadataItemImport1 = null;
await QueuedTask.Run(() => metadataItemImport1.ImportMetadata(@"E:\YellowStone.gdb\MyDataset\MyFeatureClass", MDImportExportOption.esriCurrentMetadataStyle));

9 使用導入的元數據更新元數據:導入元數據

//輸入路徑可以是元數據項的路徑,也可以是XML文件的URI
await QueuedTask.Run(() => metadataItemImport2.ImportMetadata(@"E:\YellowStone.gdb\MyDataset\MyFeatureClass", MDImportExportOption.esriCustomizedStyleSheet, @"E:\StyleSheets\Import\MyImportStyleSheet.xslt"));

10 導出當前選定項目的元數據:導出元數據

await QueuedTask.Run(() => metadataItemExport1.ExportMetadata(@"E:\Temp\OutputXML.xml", MDImportExportOption.esriCurrentMetadataStyle, MDExportRemovalOption.esriExportExactCopy));

11 導出當前選定項目的元數據:導出元數據

await QueuedTask.Run(() => metadataItemExport2.ExportMetadata(@"E:\Temp\OutputXML.xml", MDImportExportOption.esriCustomizedStyleSheet, MDExportRemovalOption.esriExportExactCopy, @"E:\StyleSheets\Export\MyExportStyleSheet.xslt"));

12 將當前項目的元數據另存為 XML:將元數據另存為 XML

await QueuedTask.Run(() => metadataItemToSaveAsXML.SaveMetadataAsXML(@"E:\Temp\OutputXML.xml", MDSaveAsXMLOption.esriExactCopy));

13 將當前項目的元數據另存為 HTML:將元數據另存為HTML

await QueuedTask.Run(() => metadataItemToSaveAsHTML.SaveMetadataAsHTML(@"E:\Temp\OutputHTML.htm", MDSaveAsHTMLOption.esriCurrentMetadataStyle));

14 使用自定義 XSLT 保存當前項目的元數據:保存元數據作為使用自定義 XSLT

await QueuedTask.Run(() => metadataItemToSaveAsUsingCustomXSLT.SaveMetadataAsUsingCustomXSLT(@"E:\Data\Metadata\CustomXSLT.xsl", @"E:\Temp\OutputXMLCustom.xml"));

15 升級當前項目的元數據:升級元數據

var fgdcItem = ItemFactory.Instance.Create(@"C:\projectAlpha\GDBs\testData.gdb");
await QueuedTask.Run(() => fgdcItem.UpgradeMetadata(MDUpgradeOption.esriUpgradeFgdcCsdgm));

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35011.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35011.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35011.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

可靠性評估的概念和流程

可靠性評估的概念和流程 可靠性評估是系統工程中的一項重要任務,它旨在確定系統的可靠性和預期的運行時間,以便進行設計優化和維護決策。其概念和流程通常涉及以下幾個關鍵要素: 可靠性模型: 可靠性模型是描述系統或組件性能的…

常見的排序算法【總結】

目錄 排序的基本概念與分類排序的穩定性內排序與外排序簡單排序冒泡排序時間復雜度: O ( n 2 ) O(n^2) O(n2) 簡單選擇排序排序原理:時間復雜度: O ( n 2 ) O(n^2) O(n2) 插入排序排序原理:時間復雜度: O ( n 2 ) O(n^…

晶方科技:臺積電吃飽,封裝迎春?

半導體產業鏈掀起漲價潮,先進封裝迎接利好。 這里我們來聊國內先進封裝企業——晶方科技。 近期,由于產能供不應求,臺積電決定上調先進封裝產品價格,還表示訂單已經排到2026年。 大哥吃不下了,剩下的訂單全都是空間。…

主線程和子線程

主線程 當Java程序啟動時,一個線程會立刻運行,該線程通常叫做程序的主線程(main thread),即main方法對應的線程,它是程序開始時就執行的。 Java應用程序會有一個main方法,是作為某個類的方法出…

JDK 23:Loom改進版發布

1.新版 Loom EA 改進虛擬線程中的監視器(同步方法) Project Loom 發布了新的搶先體驗版本(23-loom4-102 - 2024/5/31)。改進了對象監視器實現,可以防止虛擬線程在以下情況下固定其載體線程: 當進入同步方法/語句時發生阻塞&…

問題-python-爬蟲無法爬取外網資源問題(python爬蟲)

方法一: 這個報錯通過關掉梯子就能解決,目前不清楚具體原理。 后續了解具體原理了,我會在這篇文章上更新具體分析—— 方法二: 也可以把這個東西打開,但是用完建議關掉。

python無法安裝scipy怎么辦

python安裝scipy時出現以下錯誤&#xff1a; from scipy.misc import imread Traceback (most recent call last):File "D:/Pyproject/qq_Spider/create_cloud.py", line 14, in <module>from scipy.misc import imread ModuleNotFoundError: No module named …

淺析Kubernetes的權限控制模型

Kubernetes是一個開源的容器編排引擎&#xff0c;用來對容器化應用進行自動化部署、擴縮和管理。它是一個強大的集群管理系統&#xff0c;提供了豐富的功能。他的一個核心組件是Kubernetes API Server&#xff0c;這是集群中所有資源管理的入口點&#xff0c;提供了一組RESTful…

spring boot jar 啟動報錯 Zip64 archives are not supported

spring boot jar 啟動報錯 Zip64 archives are not supported 原因、解決方案問題為什么 spring boot 不支持 zip64zip、zip64 功能上的區別zip 的文件格式spring-boot-loader 是如何判斷是否是 zip64 的&#xff1f; 參考 spring boot 版本是 2.1.8.RELEASE&#xff0c;引入以…

北京崇文門中醫醫院賈英才主任:腦梗治療新探索

腦梗&#xff0c;是眾多患者心中的陰霾&#xff0c;它的突然來襲&#xff0c;常常讓人猝不及防。 一旦發作&#xff0c;偏癱、失語等癥狀接踵而至&#xff0c;給患者及其家庭帶來沉重的打擊&#xff0c;極大地影響了生活的質量。 造成腦梗頻發的原因究竟是什么&#xff1f;中…

Golang | Leetcode Golang題解之第173題二叉搜索樹迭代器

題目&#xff1a; 題解&#xff1a; type BSTIterator struct {stack []*TreeNodecur *TreeNode }func Constructor(root *TreeNode) BSTIterator {return BSTIterator{cur: root} }func (it *BSTIterator) Next() int {for node : it.cur; node ! nil; node node.Left {it…

Docker部署前端,動態配置后端地址

本文介紹了使用Docker環境變量動態配置nginx。采用的是通過docker run -e xxxxxxx先往容器注入環境變量&#xff0c;然后進一步通過envsubst指令將環境變量寫入到conf文件中&#xff0c;實現動態配置文件內容。 背景 前后端分離的架構下&#xff0c;經常會用到nginx反向代理來…

粉末冶金5G智能工廠工業物聯數字孿生平臺,推進制造業數字化轉型

粉末冶金5G智能工廠工業物聯數字孿生平臺&#xff0c;推進制造業數字化轉型。在數字化浪潮席卷全球的今天&#xff0c;制造業的數字化轉型已然成為不可逆轉的趨勢。粉末冶金行業&#xff0c;作為制造業的重要一環&#xff0c;亦需緊跟時代步伐&#xff0c;以5G智能工廠、工業物…

【SpringSecurity】認證與鑒權框架SpringSecurity——授權

目錄 權限系統的必要性常見的權限管理框架SpringSecurity授權基本流程準備腳本限制訪問資源所需權限菜單實體類和Mapper封裝權限信息封裝認證/鑒權失敗處理認證失敗封裝鑒權失敗封裝配置SpringSecurity 過濾器跨域處理接口添加鑒權hasAuthority/hasAnyAuthorityhasRole/? hasA…

華為HCIP Datacom H12-821 卷10

1.多選題 以下哪些動態路由協議可以應用在 IPv6 網絡? A、Is- Is B、BGP6 C、IS-ISv6 D、OSPFv3 正確答案: A,D 解析: 幾乎每個動態路由協議都支持IPv6,但是每個協議支持IPv6的時候的叫法不相同。支持IPv6的RIP協議,叫做RIPng;支持IPv6的OSPF協議,叫做OSPFv3;支持…

針對知識圖譜使用 Mistral-7b 從簡歷中提取實體

翻譯&#xff1a;“Entity Extraction from Resume using Mistral-7b for Knowledge Graphs” | by Tejpal Kumawat | Feb, 2024 | Medium[1] 在快速發展的自然語言處理&#xff08;NLP&#xff09;領域&#xff0c;從非結構化文本源中準確提取和分析信息的能力變得越來越重要。…

Python教程:認識一下print函數

print() 是 Python 中一個非常基礎但功能強大的函數&#xff0c;用于將數據輸出到標準輸出&#xff08;通常是控制臺&#xff09;或文件。本文我們一起聊一下這個“平凡”的print函數。 原理 print() 函數的原理相對簡單&#xff0c;它接受一個或多個參數&#xff0c;并將這些…

ravynOS 0.5.0 發布 - 基于 FreeBSD 的 macOS 兼容開源操作系統

ravynOS 0.5.0 發布 - 基于 FreeBSD 的 macOS 兼容開源操作系統 ravynOS - 一個旨在提供 macOS 的精致性和 FreeBSD 的自由度的操作系統 請訪問原文鏈接&#xff1a;https://sysin.org/blog/ravynos/&#xff0c;查看最新版。原創作品&#xff0c;轉載請保留出處。 作者主頁…

snakeyaml從1.x升級2.x的方案

一、背景 因公司漏洞掃描&#xff0c;發現SnakeYAML 反序列化漏洞(CVE-2022-1471)&#xff0c;所以要求對SnakYaml進行升級。 因項目中未直接引用snakyaml包&#xff0c;經分析是springboot引用的這個包。但是在這個項目中&#xff0c;springboot用的版本是2.3.12.RELEASE版本…

睡眠剝奪對記憶鞏固的神經生物學影響

近期&#xff0c;《自然》雜志刊載的研究揭示了睡眠不足對記憶相關神經信號的不利影響&#xff0c;強調了即使在后續恢復充分睡眠的情況下&#xff0c;這種損害亦難以完全逆轉。 神經元作為大腦的基本功能單位&#xff0c;其活動并非孤立進行&#xff0c;而是通過復雜的網絡連接…