使用ArcGIS Python API,如何与公众共享ArcGIS online中特定组中的所有项目?

2024-10-01 11:23:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编程一无所知。作为管理员,我需要更新ArcGIS Online组中的项目,以便与所有人共享。我正在Jupyter笔记本中构建脚本。我在arcig python api页面上找到了下面的链接,我已经能够从组中获取项目,但是我不知道如何循环和更新组中每个项目的共享https://developers.arcgis.com/python/guide/accessing-and-managing-groups/


Tags: 项目https脚本api链接管理员编程笔记本
2条回答

您可以对项目进行内容搜索,并且可以使用share方法。这是没有测试,但应该工作

from arcgis.gis import GIS
ago_gis = GIS()
webmaps = ago_gis.content.search("My Web Map", item_type="Web Map")
for x in webmaps:
    x.share(everyone=True)

我想做一些类似的事情,但发现我必须小心地使用共享方法。share方法的“everyone”和“org”参数的默认值为False。如果未指定,则默认为False或不与所有人共享/不与我的组织共享

在我的例子中,我试图与我创建的一个组共享一个项,因此我使用了share方法,只将group参数传递给它。当它与目标组共享时,它使用可选参数“everyone”和“org”的默认值,这些参数将项目设置为仅由“owner”查看。这破坏了该项目所属的任何面向公众的应用程序和地图

为了只修改组设置,我需要调用项目的当前共享设置(使用shared_with属性),根据需要修改它们,并通过修改将它们传递到share方法中。这使我能够与公众或我的组织共享它们,但也可以将它们添加到我需要添加到的组中

以下是我在笔记本中使用的代码:

item_sharing_status = item.shared_with

item.share(everyone = item_sharing_status['everyone'],
           org = item_sharing_status['org'],
            groups = item_sharing_status['groups'] + [backup_group.id])

相关问题 更多 >