我已经成功地实现了多个文件扩展名,作为插件数据源添加到映射作为功能层。其中一些是新类型,一些是Pro可识别的类型(如csv)。对于新的类型,我已经创建了专业自定义项目开始。对于那些可识别的Pro根据文档没有必要。这是根据专业文档
已被ArcGIS Pro使用的文件扩展名(包括门户、在线、地理数据库、工具箱等)不能被自定义项覆盖/扩展。这包括文本文件、xml文件、文件夹、数据库连接文件、层文件、任务文件、mxds、sxds等。在ArcGIS Pro使用的内容类型上定义的自定义项将被忽略。
我还添加了多种方式来添加数据源,如上下文菜单,拖放和使用添加数据在功能区。
这主要是使用接口IMappableItem实现的,并为Custom Item类实现下面的方法
public List
但是如何实现这些用例,将其添加为CSV等扩展的特性层。因为对于CSV来说,在Ribbon中添加数据只是添加独立的表。对于CSV,我不知道如何添加自定义上下文菜单实现添加到当前映射和添加到新映射。
所以问题是如何实现ArcGIS Pro已经在使用的文件扩展名的这些用例。
现在将插件添加为CSV的特性层只是使用拖放处理程序。但是如何实现CSV的以下所有用例:
“添加数据”对话框
“从路径中添加数据”对话框
将项目从目录窗口拖放到地图中
将您的项目从目录窗口拖放到TOC中
拖放你的项目从Windows资源管理器到地图
拖放你的项目从windows资源管理器到TOC
因此,我们不能添加自定义代码来添加csv或文本作为功能层,就像使用下面的。net sdk用例的插件数据源一样
“添加数据”对话框
“从路径中添加数据”对话框
将项目从目录窗口拖放到地图中
将您的项目从目录窗口拖放到TOC中
拖放你的项目从Windows资源管理器到地图
拖放你的项目从windows资源管理器到TOC
也作为一个添加到自定义地图和添加到新地图。
因为默认情况下,它只会将其作为一个独立的表添加。
这里有Esri ArcGIS Pro SDK社区示例,精确的csv数据:
它在List
这似乎并不适用于CSV
<内容displayName="AddToMap"fileExtension="uxh"isContainer="假"关键字="AddToMap"contextMenuID="AddToMapCustomItem_AddToMap_ContextMenu">
根据Pro文档,如果我们将为Pro使用的文件扩展名(如CSV或TXT)创建自定义项,自定义项将被忽略。如果自定义项目被忽略,那么就没有使用实现OnAddToMap方法。
以下是提及:
已被ArcGIS Pro使用的文件扩展名(包括门户、在线、地理数据库、工具箱等)不能被自定义项覆盖/扩展。这包括文本文件、xml文件、文件夹、数据库连接文件、层文件、任务文件、mxds、sxds等。在ArcGIS Pro使用的内容类型上定义的自定义项将被忽略。
我仍然不确定为什么要创建自定义项目,如果根据文档,它被提到,它将被忽略。