有时我需要将一个域(一个或多个)从一个地理数据库复制到另一个地理数据库(没有要素类或表)。并不像我想的那么简单(或者我错过了一个CopyDomain工具)。

您使用什么方法来完成此任务?

评论

我至少知道另外2种方法:也许不值得“接受答案”,但是绝对值得声誉。如果没有其他人提供它们作为答案,我会在几天后发布。

请发布其他解决方案,如果有价值,社区将投票赞成:)

在某些情况下,我不得不向非GIS DBA解释域如何像表一样,但是没有存储为可通过SQL访问的表。也许答案应该是非GIS DBA可以理解的语言。

#1 楼

http://arcscripts.esri.com/details.asp?dbid=14729

这是一个ArcCatalog扩展,允许您在地理数据库之间复制域。

我相信仅为9.3.1 SP1的最新版本,因此它可能不适用于ArcGIS10。

评论


+1我在ArcGIS 10上,但我故意使问题不限任何版本。我确实获得了9.3.1扩展名,可以在ArcCatalog 10中使用。我没有在上下文菜单中获得新命令,但是我能够将该命令添加到工具栏并以这种方式使用。

–杰伊·康明斯(Jay Cummins)
2010-11-10 15:14

好的,很高兴。您应该让扩展作者知道上下文菜单命令在ArcCatalog 10中不起作用。

– Britt Wescott
2010-11-10 15:21

我确实通知了作者(到目前为止,cri)。另外,我在星期五将SP1应用于ArcGIS 10。现在,当ArcCatalog启动时,复制域的arccatalog扩展错误。

–杰伊·康明斯(Jay Cummins)
2010-11-15 12:58

这很有道理,希望他会尽快进行更新。

– Britt Wescott
2010-11-15 14:29

#2 楼

对于编码值域,我将在源地理数据库中执行“域到表”,然后在新地理数据库中执行“表至域”。域。您可以执行“域到表”,但是“表到域”始终作为编码值域出现。

评论


今天早晨,我刚刚使用了“域到表”和“表到域”工具,它们工作得很好。

–蒂莫西·迈克尔(Timothy Michael)
2012年3月7日14:49

#3 楼

此方法更具说服力,并且仅适用于1个或几个域。您要复制的域的字段数据
类型。
将虚拟要素类复制/粘贴到新的地理数据库中,直到将
域分配给另一个要素类中的字段之前,不要删除它。


#4 楼

我根据上周发现的一些vba代码编写了一个快速命令行arcobjects exe。这不是复杂的代码。

Exe在这里。AVI电影在这里。暂时)。



评论


我尝试了一下,但收到异常错误,CopyDomain.exe canvec_blank.gdb target.gdb * HRESULT的异常:0x80040228 HRESULT的异常:0x80040228。有任何想法吗?

–马特·威尔基
2011年5月31日在21:41

不确定,但是您是ArcEditor许可证吗?那是一个快速而肮脏的工具,因此它可能不是最优雅的工具。你有Visual Studio吗?来源在这里:code.google.com/p/umbriel/source/browse/…

–杰伊·康明斯(Jay Cummins)
2011年6月1日在2:01

#5 楼

这是一种使用XML Workspace文档导出/导入域的方法。

要求


ArcGIS Desktop 10.XX
ArcGIS Pro最新(已测试)
Notepad ++,记事本或您喜欢的文本编辑器

过程

从源导出XML


选择源地理数据库
导出XML工作区文档





仅导出架构。元数据是可选的(红色箭头)。



编辑XML

步骤中将删除数据集模式。


打开XML文件。
(可选)打开自动换行使所有内容都更容易查看。
删除<DatasetDefinitions xsi:type='esri:ArrayOfDataElement'></DatasetDefinitions>标记之间的所有内容。看起来应该像这样:




其他所有内容都保留。
保存XML文件

导入到目标


查找/创建新的地理数据库
导入XML Workspace文档...

选择编辑后的XML并继续。
>完成。

故障排除


Esri XML工作区规范非常具体。如果导入步骤出现错误,则可能是架构错误。查看XML或再次将其导出并重复。请勿删除任何多余的插入符号或换行符。