群组是GIS中的协作空间,用户可在其中分享内容。群组支持元数据,并允许你根据其主题来自定义。你可以在群众创建用户并分配给其相关的群组权限。

gis模块中,Group类表示群组。与ItemsUsersRoles一样,GroupManager的实例对象用来创建、查询和赋予权限给Group对象,可通过GIS对象的groups来获取其实例对象。

查询群组

可以使用search()方法来查询群组。search()方法接收标准的ArcGIS REST API查询参数

from arcgis.gis import GIS
gis = GIS(url="https://singlega.jiaoxn.local/arcgis", username="esricd", password="12345678", verify_cert=False)
all_groups = gis.groups.search()
all_groups
from arcgis.gis import GIS
gis = GIS(url="https://singlega.jiaoxn.local/arcgis", username="esricd", password="12345678", verify_cert=False)
all_groups = gis.groups.search(query='owner:esri and description:basemaps', max_groups=15)
all_groups

群组的属性

在Python中可以使用dir(<object>)查询群组实例的属性,Group群组实例的常用的属性有:

  • id
  • access
  • owner
  • created
  • groupid
  • isFav

创建群组

通过Python API,可调用GroupManager示例的create()方法来创建新的群组。和其他ResourcesManager实例的create()方法一样,该方法会返回一个Group对象。

from arcgis.gis import GIS
gis = GIS(url="https://singlega.jiaoxn.local/arcgis", username="esricd", password="12345678", verify_cert=False)
new_group = gis.groups.create(title='Recreational geocaching',
                              tags = 'hobby, geocaching, gps, hide n seek',
                              description = 'Group to share your landmarks and games',
                              snippet = 'Share your GPX tracks as feature layers here',
                              access = 'org',
                              is_invitation_only = 'False',
                              thumbnail = r'../../static/img/geocaching.jpeg')

分享内容到群组

在一个ArcGIS组织中,一个内容项可以设置特定的访问权限:privategrouporgeveryone。当被分享到一个群组时,该群组内的用户均可访问它。

# new_content是新创建的用户项

new_content.share(groups=new_group)

管理你的群组

查看群组的内容项列表

使用Group群组对象实例的content()方法,可以查看当前群组有权访问的内容项列表。

my_group.content()
添加用户到群组

Python API添加用户可以有两种方法:一种是通过使用Group对象实例的add_user()方法,同时以列表的方式提供用户名称;另一种是通过使用Group对象实例的invite_users()方法邀请用户加入这个群组。

my_group.add_users([]"api_data_owner")

# 返回
{
    "notAdded": []
}

该方法将会返回哪些用户没有被成功添加到群组。

查看群组中的用户

使用Group群组对象实例的get_members()方法,查看当前群组中的用户列表。

my_group.get_members()

该方法不仅会返回群组中的用户列表,并且会将这些用户分类到owneradminsusers这三个类别中。返回示例:

{
    "owner": "arcgis_python",
    "admins": ["arcgis_python"],
    "users": ["api_data_owner"]
}
更新群组

使用Group对象实例的update()方法可以更新群组,通过该函数,可以更新创建群组时提供的任意一个群组字段,这也意味着更新群组的参数和创建群组的参数是一致的。

my_group.update(is_invitation_only=True)
终止群组

当一个群组已经完成了其服务的目标或者其需求已经改变了,群组管理员和群组成员可以有几种选择。他们可以通过leave()方法离开群组。当一个用户离开群组时,其分享的内容会自动的被取消当前群组的分享。群组的所有者或者管理员可通过delete()方法来删除群组。

当群组和群组的内容必须得保留,可通过ressign_to()更改群组的所有者并制定新的用户名。这一块需要注意的是,只有组织的管理员才能够更改群组的所有者。

# 更改群组的所有者
geocaching_group.reassign_to(target_owner = 'api_data_owner')

# 删除群组
geocaching_group.delete()
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐