当覆盖托管特性层时,托管特性层视图不更新

129
11
一周前
AmandaBeck
通过
新贡献者III

我刚刚使用了ArcGIS Pro中的Overwrite Web Layer来更新ArcGIS Online中的托管功能层。托管功能层更新成功,但是,我们在许多ArcGIS在线地图/应用程序中的托管功能层视图没有更新。弹出一个错误消息,说该层不再可用。

我在2022年9月成功地做到了这一点,但现在不工作了。有人知道这里发生了什么吗?ESRI改变了这种能力吗?欢迎任何意见。

谢谢!

0荣誉
11日回复
jcarlson
通过 MVP荣誉贡献者
MVP荣誉贡献者

造成这种情况的原因有很多。一般来说,覆盖一个服务来更新它的内容是自找麻烦。只有当层结构发生了变化,或者模式发生了重大变化时,才应该这样做;大多数其他内容都可以就地修改,或者使用截断/追加过程。

当你覆盖这个层的时候,你的层的顺序和模式有什么变化吗?

——乔什·卡尔森
肯德尔县GIS
0荣誉
AmandaBeck
通过
新贡献者III

嗨,杰克,

我需要覆盖的数据是地址点数据——我每年向州政府发送两次。我的GIS部门提出了这个程序,从ArcGIS Pro覆盖层来更新托管的特征层,这将自动更新视图层。当我在8月份进行最后一次更新时,它运行得非常好。我理解在ArcGIS Online中添加数据到一个层的好处,然而,当我们谈论如此大的层,其中的点可以被移动/删除/添加时,似乎更好的方法是完全覆盖整个层。

为了回答您的问题,在覆盖层或模式之前没有对其进行任何更改。

感谢您的回复!

0荣誉
jcarlson
通过 MVP荣誉贡献者
MVP荣誉贡献者

这就排除了任何简单的解释。我们曾经用这种方式更新我们的一些层,偶尔会遇到这个问题,尤其是视图层。我们会覆盖一个层8次,在第9次,它会崩溃。

有时我们可以识别通过发布工具的分析步骤的数据中的错误,但通常情况下,没有明显的差异。

顺便说一句,基本上是截断和追加覆盖,但只覆盖数据本身,同时保留所有深层设置。这是大多数人在使用内置的“覆盖web层”工具时实际上想要做的事情。首先将层“归零”,然后向层中追加,因此每个记录,无论是新的、修改的还是其他记录,都反映在最终产品中,并且不存在数据过期的风险。

——乔什·卡尔森
肯德尔县GIS
AmandaBeck
通过
新贡献者III

很高兴知道我们不是唯一遇到这个问题的人!我只是想验证我说的是正确的,当更新一个托管的功能层(覆盖或追加),视图层应该自动更新自己?从你所解释的过去发生在你身上的事情来看,这似乎就是为什么我们会在第一时间尝试这样做。

你现在只在ArcGIS Online中使用附加数据来更新托管的特征层以显示在视图层中吗?我只是想知道有什么解决方案可以让这个问题不再发生。除了重新创建视图层,似乎没有办法在这一点上修复它。

更令人困惑的是,当我在ArcGIS Online的视图层中查看详细信息页面时,在数据所在的层下,当我单击它时,它会显示我在托管功能层中更新数据的日期。就好像它部分起作用了,只是不是全部,你懂我的意思吧。

再次感谢,

阿曼达贝克-沃伦县地理信息系统

0荣誉
jcarlson
通过 MVP荣誉贡献者
MVP荣誉贡献者

你是正确的,更新主层也应该更新相关的视图。问题是重写会替换整个服务定义,但视图层保留其原始定义,因此主层和视图层之间可能存在潜在的差异,从而导致视图不兼容。

我们使用ArcGIS Python API来更新我们的层,无论它们是否有关联的视图,如果原始数据源在其他地方。

这是一个非常简单版本的过程:

从arcgis导入GIS。功能导入GeoAccessor #登录到门户gis = gis ('portal-url', '用户','密码')#通过id和索引获取功能层fl = gis.content。Get ('itemid of service')。层[0]#加载源数据;这将根据源df = GeoAccessor.from_featureclass('文件路径')#截断现有数据fl.manager.truncate() #加载fl.edit_features中的最新数据(添加=df.spatial.to_featureset())

对于较大的更新,您可能希望分批进行,而不是提交单个大规模更新。

我知道真的有附加AGOL和Python API中的功能,但由于特定于我们的源数据的各种原因,我一直无法让这个过程为我们的更新工作。但是截断/追加脚本运行得非常好,所以我不认为有任何特殊的理由去修改它。

我们用它做很多事情,包括一些地址数据。对于大约50k个地址点,整个过程只需要几分钟。

——乔什·卡尔森
肯德尔县GIS
MichaelVolz
通过
尊敬的贡献者

Josh,感谢您提供的代码示例,因为这看起来非常强大。

0荣誉
LauraMott
通过
新贡献者II

该代码是否适用于组层?我是否需要将我在AGOL中的组层分离为11个不同的托管功能层并单独更新?

0荣誉
FabioLuiz2
通过
新的因素

你好,阿曼达,

我不知道如何解释这个也发生在我身上的问题,但我通过激活ArcGIS Pro 3中的“分配层id”选项来解决它。
在以前的版本中,我记得不需要这个。

https://pro.arcgis.com/en/pro-app/latest/help/sharing/overview/assign-layer-ids.htm


(此信息翻译自PT-BR)

0荣誉
RhettZufelt
通过 常规赛MVP
常规赛MVP

我同意,谢谢你的代码。似乎工作得很好,如果我没有任何附件,会得到很多里程。

我看到你可以添加/更新/删除附件与此,但从我可以告诉一个必须提供一个字典列出所有附件添加。

您是否知道一种简单的方法来“维护”添加的特性的附件,而不需要使用字典?

谢谢,

R_

0荣誉