【问题标题】:Using ArcGIS Python API, how can I share all items in a specific group from ArcGIS online with the public?使用 ArcGIS Python API,如何与公众共享 ArcGIS Online 中特定组中的所有项目?
【发布时间】:2021-10-16 08:17:27
【问题描述】:
【问题讨论】:
标签:
python
jupyter-notebook
arcgis
【解决方案1】:
您可以对项目进行内容搜索,并且可以使用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)
【解决方案2】:
我想做类似的事情,但发现我必须谨慎使用 share 方法。 share 方法的 'everyone' 和 'org' 参数的默认值为 False。如果您不指定它们,它们默认为 False 或不与所有人共享/不与我的组织共享。
在我的例子中,我试图与我创建的组共享一个项目,所以我使用了 share 方法并且只将 group 参数传递给它。虽然它与目标组共享它,但它使用了可选参数“everyone”和“org”的默认值,这些值将项目设置为仅由“所有者”查看。这破坏了该项目所属的任何面向公众的应用程序和地图。
为了只修改组设置,我需要调用项目的当前共享设置(使用 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])