当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python ArcGIS PortalDataStore.publish_layers用法及代码示例


本文简要介绍 python 语言中 arcgis.gis._impl._datastores.PortalDataStore.publish_layers 的用法。

用法:

publish_layers(item, srv_config, server_id, *, folder=None, server_folder=None, sync_metadata=None, use_config=None, future=False)

返回:

future=False 时为布尔值,否则为 StatusJob 对象

publish_layers 操作从数据库数据存储 Item 发布或同步数据集。这导致每个数据集至少有一层。

注意:

第一次调用此操作时,必须为每个参数提供一个参数。在后续调用中,此方法会将数据存储中的数据集与企业中创建的图层进行同步,其中包括从新添加的数据集中发布图层以及删除数据存储中不再找到的数据集的图层。

Parameter

Description

item

必填项目。数据存储 Item 保存要发布的内容。

srv_config

必需的字典。将用作将发布或同步的所有服务的模板的 JSON。此 JSON 可用于更改输出Map和要素服务的属性。

注意:

此参数仅支持启用要素服务的Map服务配置。

server_id

必需的字符串。数据集将发布到的 serverId。

注意:

使用 gis.admin.federation.servers 获取与企业门户联合的各个服务器的 ID 值。

folder

必需的字符串。数据集将发布到的文件夹。

注意:

该文件夹必须存在于企业门户中。

server_folder

必需的字符串。服务器文件夹的名称。

注意:

如果该文件夹不存在,该方法将创建它。

sync_metadata

可选布尔值。确定执行同步时是否使用源数据集的元数据更新项目信息详细信息。默认为 false。

use_config

可选布尔值。如果为 true,新的 srv_config 将应用于所有层。

future

可选布尔值。如果为 False,则返回该值,否则返回 StatusJob

例子:

# Usage Example: bulk publishing from enterprise geodatabase data store item

>>> ds_items = gis.content.search("*", item_type="Data Store")
>>>
>>> db_dsitem = [ds for ds in ds_items if ds.get_data()["type"] == "egdb"][0]
>>>
>>> portal_folderid = [f["id"]
>>>                    for f in gis.users.me.folders
>>>                    if f["title"] == "My_Bulk_Layers_Folder"]
>>>
>>> service_template = {"serviceName": None,
>>>                     "type": "MapServer",
>>>                     "capabilities":"Map,Query",
>>>                     "extensions": [{"typeName": "FeatureServer",
>>>                                     "capabilities":"Query,Create,Update,Delete",
>>>                                     "enabled": "true",
>>>                                     "properties": {"maxRecordCount": 3500}}]}
>>>
>>>
>>> portal_ds = gis.datastore
>>>
>>> bulk_publish_job = portal_ds.publish_layers(item = db_dsitem,
>>>                                             srv_config = service_template,
>>>                                             server_id = host_id,
>>>                                             folder = portal_folderid,
>>>                                             server_folder="bulk_egdb_layers",
>>>                                             future=True)
>>>
>>> while bulk_publish_job.status == "processing":
>>>     continue
>>> if bulk_publish_job.status == "succeeded":
>>>     bulk_publish_res = bulk_publish_job.result()
>>> else:
>>>     print(f"Job Status: {bulk_publish_job.status}")
>>>     print(f"Job Messages: {bulk_publish_job.messages}")

相关用法


注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 arcgis.gis._impl._datastores.PortalDataStore.publish_layers。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。