【问题标题】: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
【问题描述】:

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

【问题讨论】:

  • 您要更换所有者吗?

标签: 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])
    

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 2017-06-12
      • 2016-03-28
      • 2018-05-03
      • 2021-11-11
      • 2021-10-15
      • 2018-10-14
      • 2020-05-19
      • 2019-11-22
      相关资源
      最近更新 更多