可使用多种 ArcGIS 客户端来编辑(或查看)要素服务中的要素。 客户端可通过 Web 客户端或 ArcGIS Pro 使用要素服务。
开箱即用的 ArcGIS Web 客户端
Map Viewer 以及 ArcGIS Online 和 ArcGIS Enterprise 中的模板提供用于编辑要素服务的基本开箱即用功能。 无需编程,即可快速创建允许用户在数据库中添加、更新和删除地理要素的 web 编辑应用程序。
例如,使用开箱即用的应用程序时,您可以执行以下操作:
- 编辑“仅选择”图层。
- 追踪编辑内容 (针对企业级地理数据库,数据库中不可用。)
- 使用基于所有权的访问控制来控制对要素的访问。 (针对企业级地理数据库,数据库中不可用。)
- 阻止用户编辑要素几何。
可使用服务的 ArcGIS Server 服务目录 URL 将要素服务添加到 Map Viewer 中。 创建并保存包含要素服务的地图后,可在组织中与其他人共享该地图,也可将其嵌入网站,或者将该应用程序的链接 (URL) 粘贴到电子邮件、博客或网站中。 也可以通过从 ArcGIS Online 下载应用程序模板将您创建的地图部署到您所在组织的 Web 服务器上。 这些模板完全可以自定义。
还可以在 ArcGIS Enterprise 或 ArcGIS Online 组织中添加要素服务作为项目,并将项目与组织的其他成员共享。
ArcGIS Maps SDK for JavaScript 客户端
ArcGIS Maps SDK for JavaScript 提供了最先进的 Web 编辑功能和自定义选项。 如果您喜欢使用此 API 进行编程,可通过针对特定目的、目标或组织策略定制您的编辑方案,从而为 Web 用户提供尖端体验。 例如,可通过 ArcGIS Maps SDK for JavaScript 执行以下操作:
- 编辑“仅选择”图层
- 追踪编辑内容(针对企业级地理数据库,数据库中不可用。)
- 使用基于所有权的访问控制来控制对要素的访问
- 阻止用户编辑要素几何
- 动态创建、删除和更改地理数据库版本
- 编辑制图表达
获取要素服务的 REST 端点
可通过浏览至 ArcGIS Server 服务目录中的服务获得要素服务的 REST 端点或 URL 链接。 例如,服务目录中某要素服务的默认 URL 是 https://gisserver.domain.com:6443/arcgis/rest/services/folder/service/FeatureServer。 可将从零开始的整数追加到该 URL 来引用该服务中的特定图层。 例如,如果 URL 链接以 /0 结束,则会引用服务中的第一个图层。
ArcGIS Pro
ArcGIS Pro 允许您编辑要素服务中的数据。 在 ArcGIS Pro 中编辑的工作流与通过 Web 应用程序编辑要素服务具有本质上的区别。 有关详细信息,请参阅编辑要素服务。
与要素服务保持同步
要素服务中包含支持离线编辑工作流的操作。 在离线环境中,客户端(例如,运行时或移动设备)可进行本地编辑,并在客户端重新连接要素服务后将内容更改与服务器进行同步。 此功能称为同步,通过 ArcGIS REST API 可使用该功能。
有关与要素服务保持同步的详细信息,请参阅 ArcGIS Server 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 发送完整响应的需要,可提高浏览器缓存的效率,有助于优化应用程序,从而节省网络带宽。
对于要素服务,默认值为零秒。 这表示浏览器始终重新发送请求,且 ArcGIS Server 将处理请求并在内容发生更改的情况下向浏览器发送完整的响应。 该值适用于大多数应用程序。
对于数据不会发生频繁更改的要素服务,建议将默认值增加到 30 天(2,592,000 秒)或更长,从而最大限度地降低网络流量。
要将 cacheControlMaxAge 属性添加到服务并指定其默认值,请执行以下操作:
- 在 web 浏览器中打开 ArcGIS Server 管理员目录,然后以具有管理员权限的用户身份进行登录。 URL 地址格式为 https://gisserver.domain.com:6443/arcgis/admin。
- 单击服务,然后从服务列表中选择要修改的要素服务。 如果此处没有列出您的服务,则可能在根文件夹下的目录中列出。
- 在目标要素服务页面上,滚动至底部并单击编辑。
- 将打开服务属性 对话页面。 导航到 JSON 文件中要插入 cacheControlMaxAge 属性的位置。 这取决于要素服务的发布位置:
- 如果要素服务发布到联合或独立的 ArcGIS Server,则请定位到 JSON 的 "extensions" 部分。 通过 "typeName": "FeatureServer" 导航到子部分。 cacheControlMaxAge 属性将转到该子部分的 properties 参数。
- 如果要素服务已发布到 ArcGIS Enterprise 门户,则请定位到服务属性 JSON 的 "jsonProperties" 部分。 将 cacheControlMaxAge 属性添加到此部分。
- 将 cacheControlMaxAge 属性添加到适当部分,然后指定属性值(以秒为单位)。 例如,将最长期限值设置为 30 天,插入 "properties": { "cacheControlMaxAge": "2592000", }。
如果要素服务发布到联合或独立的 ArcGIS Server:
{ "typeName": "FeatureServer", "capabilities": "Query,Create,Update,Delete,Uploads,Editing", "enabled": "true", "maxUploadFileSize": 0, "allowedUploadFileTypes": "", "properties": { "cacheControlMaxAge": "2592000",} }
如果要素服务发布到 ArcGIS Enterprise 门户。
"jsonProperties": {** "currentVersion": 10.9.1, "serviceDescription": "", "maxRecordCount": 2000, "cacheControlMaxAge": "2592000", }
- 单击保存编辑。
- 在要素服务页面,验证属性部分中是否显示 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> | 样式 |
<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> |