可使用多种 ArcGIS 客户端来编辑或查看要素服务中的要素,例如 web 客户端或 ArcGIS Pro。
开箱即用的 ArcGIS Web 客户端
Map Viewer 以及 ArcGIS Online 和 ArcGIS Enterprise 中的模板提供用于编辑要素服务的基本开箱即用功能。 无需编程,即可快速创建允许用户在数据库中添加、更新和删除地理要素的 web 编辑应用程序。
例如,使用开箱即用的应用程序时,您可以执行以下操作:
- 编辑图层。
- 追踪编辑内容
- 使用基于所有权的访问控制来控制对要素的访问。
- 阻止用户编辑要素几何。
可使用服务的 ArcGIS Server 服务目录 URL 将要素服务添加到 Map Viewer 中。 创建并保存包含要素服务的地图后,可在组织中与其他人共享该地图,也可将其嵌入网站,或者将该应用程序的链接 (URL) 粘贴到电子邮件、博客或网站中。 您也可以使用组织中可用的应用程序模板来部署已创建的地图。 这些模板完全可以自定义。
您也可以在 ArcGIS Enterprise 或 ArcGIS Online 组织中添加要素服务作为项目,并与该组织的其他成员共享项目。
ArcGIS Maps SDK for JavaScript 客户端
ArcGIS Maps SDK for JavaScript 提供了最先进的 Web 编辑功能和自定义选项。 如果您习惯使用此 API 进行编程,则可以根据特定目的、目标或组织策略来定制编辑体验。 例如,可通过 ArcGIS Maps SDK for JavaScript 执行以下操作:
- 编辑“仅选择”图层。
- 追踪编辑内容
- 使用基于所有权的访问控制来控制对要素的访问。
- 阻止用户编辑要素几何。
- 动态创建、删除和更改引用的地理数据库版本。
- 编辑制图表达。
获取要素服务的 REST 端点
可通过浏览至 ArcGIS Server 服务目录中的服务获得要素服务的 REST 端点或 URL 链接。 例如,服务目录中某要素服务的默认 URL 是 https://gisserver.example.com:6443/arcgis/rest/services/folder_name/service_name/FeatureServer。
要访问要素服务中的特定图层,请向 URL 追加一个从零开始的整数。 例如,在 URL 后追加 /0 可访问服务中的第一个图层;在 URL 后追加 /1 可访问服务中的第二个图层。
在 ArcGIS Pro 中使用要素服务
可以向 ArcGIS Pro 添加要素服务以查看并编辑其中的数据。
在 ArcGIS Pro 中编辑的工作流与通过 Web 应用程序编辑要素服务具有本质上的区别。 有关详细信息,请参阅 ArcGIS Pro 帮助中的编辑要素服务。
与要素服务保持同步
要素服务中包含支持离线编辑工作流的操作。 在离线环境中,客户端(例如,运行时或移动设备)可进行本地编辑,并在客户端重新连接要素服务后将内容更改与 ArcGIS Server 站点进行同步。 此功能称为同步,可通过 ArcGIS REST API 使用该功能。
有关与要素服务保持同步的详细信息,请参阅 ArcGIS REST API 帮助的同步部分。
提高要素服务的显示性能
当客户端向 ArcGIS Server 发送请求以查询要素服务时,服务器上的响应通常由浏览器进行缓存,并在一段时间之内重复使用。 但您可以考虑根据要素服务及其相关数据在应用程序中的使用方式来调整浏览器缓存中的响应时间。 通过将名为 cacheControlMaxAge 的属性添加到服务的 JavaScript 对象标记法 (JSON),可实现上述操作。
cacheControlMaxAge 属性的使用方式
ArcGIS Server 要素服务响应包括一个实体标签 (ETag) 和 Cache-Control 头。 ETag 标头值是响应的唯一标识符。 Cache-Control 头具有一个最长期限值,该值可向浏览器提供有关浏览器缓存中响应可供重复使用的最大时段的信息。 该值由 cacheControlMaxAge 属性控制。
如果重复之前的请求且尚未超过缓存的最长期限,则浏览器将使用缓存的响应而不会将请求发送到服务器。 如果已超过最长期限,则浏览器必须将请求发送到服务器,并通过与其缓存中响应相对应的相关 ETag 值设置 IF-NONE-MATCH 标头。 ArcGIS Server 评估请求,并使用 ETag 值来确定响应是否更改。 如果服务器的响应与浏览器中的副本不同,则服务器会将一个新的响应发送到浏览器。 如果响应与浏览器上的副本相同,则服务器会警告浏览器继续在其缓存中使用响应。
定义 cacheControlMaxAge 属性值
要指定允许浏览器使用缓存响应的时长,请定义 cacheControlMaxAge 属性。 每一个服务缓存都能设置该属性。 通过减少 ArcGIS Server 发送完整响应的需要,可提高 web 浏览器缓存的效率,有助于优化应用程序,从而节省网络带宽。
对于要素服务,默认值为零秒。 这表示浏览器将始终重新发送请求,且 ArcGIS Server 将处理请求并在内容发生更改的情况下向浏览器发送完整的响应。 该值适用于大多数应用程序。
对于数据不会发生频繁更改的要素服务,建议将默认值增加到 30 天(2,592,000 秒)或更长,从而最大限度地降低网络流量。
要向要素服务添加 cacheControlMaxAge 属性并指定其默认值,请完成以下步骤:
- 在 Web 浏览器中打开 ArcGIS Server 管理员目录,然后以具有管理员权限的用户身份进行登录。
URL 地址格式为 https://gisserver.example.com:6443/arcgis/admin。
- 单击服务,然后从服务列表中选择要修改的要素服务。
如果此处没有列出您的服务,则可能在根文件夹下的目录中列出。
- 滚动至目标要素服务页面的底部,然后单击编辑。
将弹出服务属性对话框。
- 将 cacheControlMaxAge 属性插入 JSON 文件中。
插入属性的位置将取决于要素服务将引用注册数据,还是将引用托管要素服务。
- 对于引用注册数据源的要素服务,定位 JSON 的 "extensions" 部分。 找到包含文本 "typeName": "FeatureServer" 的子部分,然后将 cacheControlMaxAge 属性插入此子部分的 properties 参数中。
- 对于托管要素服务,定位服务属性 JSON 的 "jsonProperties" 部分。 将 cacheControlMaxAge 属性添加到此部分。
- 将 cacheControlMaxAge 属性设置为所需值(以秒为单位)。
以下示例显示了将引用注册数据存储的要素服务的 cacheControlMaxAge 属性设置为 30 天(2592000 秒):
{ "typeName": "FeatureServer", "capabilities": "Query,Create,Update,Delete,Uploads,Editing", "enabled": "true", "maxUploadFileSize": 0, "allowedUploadFileTypes": "", "properties": { "cacheControlMaxAge": "2592000",} }
下一个示例显示了将托管要素服务的 cacheControlMaxAge 属性设置为 30 天(2592000 秒)。
"jsonProperties": {** "currentVersion": 11.5, "serviceDescription": "", "maxRecordCount": 2000, "cacheControlMaxAge": "2592000", }
- 单击保存编辑。
在 ArcGIS Server Administrator Directory 中的要素服务页面上,验证属性部分中是否显示 cacheControlMaxAge 属性以及为该属性指定的值。
在文本字段中提供 HTML
在客户端应用程序中编辑要素服务时,可以在文本字段中使用 HTML 实体或属性。 例如,在 Web 客户端中编辑要素时,可以在注释字段中输入样式化的 HTML。
注:
默认情况下,仅可在要素服务文本字段中使用下表中列出的 HTML 实体和属性。 如果尝试添加不受支持的实体或属性,将返回错误。
如果您的工作流需要使用不支持的 HTML 实体和属性,则必须禁用要素服务上的过滤 Web 内容属性。 可通过 ArcGIS Server Manager 中的要素服务高级选项对话框访问此属性。 有关详细信息,请参阅在 Server Manager 中编辑服务属性。
HTML 实体 | HTML 属性(如果适用) |
---|---|
<a> | href、target、style |
<b> | |
<br> | |
<div> | style、align |
<em> | |
<font> | size、color、style、face |
http, https protocol | src、href |
<i> | |
<img> | src、width、height、alt、border、style |
<li> | |
mailto: protocol | src、href |
<ol> | |
<span> | style |
<strong> | |
<table> | width、height、cellpadding、cellspacing、border、style |
<tbody> | |
<td> | height、width、valign、align、colspan、rowspan、nowrap、style |
<tr> | height、valign、align、style |
<u> | |
<ul> |