要创作要素服务,请准备数据、创建地图文档、将数据添加到地图并定义服务显示的数据属性和符号系统。如果要允许对服务进行编辑,也请定义编辑环境。
注意,本主题涵盖如何创作直接发布到 GIS Server 的要素服务。
准备数据
发布时,要素服务包含了添加到地图文档的图层和表格。无论数据源是地理数据库还是数据库,某些数据定义要求是通用的。接下来的部分会介绍通用要求。在其他情况下,定义数据的方法取决于数据是位于地理数据库还是数据库中。企业级或工作组级地理数据库特定要求和数据库特定要求部分中会介绍这些区别。
数据库和地理数据库通用要求
必须为数据定义有效的空间参考。如未定义,则于发布前在 ArcMap 中进行指定。如果未定义空间参考,则不能发布数据。
如果要使用要素服务进行编辑,Esri 建议您仅将要编辑的数据添加到地图文档中。将底图图层等不想编辑的数据发布为另一服务。有关规划业务服务和底图服务的详细信息,请参阅地图服务规划。还可以使用 ArcGIS Online 底图。有关设计地图以叠加在线地图和服务的详细信息,请参阅设计地图以叠加 ArcGIS Online、Google 地图或 Bing 地图。
同时,如果要使用要素服务进行编辑,必须授予对数据的编辑权限。如果地图中的数据库连接使用操作系统身份验证,则必须向 ArcGIS Server 帐户授予这些权限。
如地理数据库要求中所注,要素服务不支持基于地理数据库数据中所定义视图的图层。您可将数据库的视图包含在要素服务内;但是不能编辑通过要素服务内所含任何种类的视图获取的数据。如果希望包含视图中的数据在地图或应用程序中供参考,可在另一不同的、仅查询要素服务或地图服务中发布该数据。
如果别人会将要素服务添加到 ArcMap 并进行编辑,则不要给发布为要素服务的地图文档的相同要素类定义多个图层。
可以编辑具有 z 值的要素。有关详细信息,请参阅为可编辑的要素服务配置默认 z 值。
如果要在要素服务中编辑包含 m 值的图层,则以下内容适用:
- 从大多数客户端编辑要素服务时,可以删除或插入具有 m 值的要素,也可以编辑具有 m 值的要素属性。只有当客户端提供 m 值时,或者通过允许编辑器指定 m 值,或者如果在编辑器不提供 m 值时将要素服务配置为插入 NaN,才可以编辑具有 m 值的要素的几何。
- 对要编辑的要素服务数据创建本地副本时,ArcMap 对具有 m 值的要素支持所有编辑操作(插入、删除和更新,包括几何更新)。
注:
路径事件、x,y 事件和宗地结构之类的虚拟图层在要素服务中是只读的。
企业级或工作组级地理数据库特定要求
下面介绍要素服务数据要求,这些要求特定于企业级或工作组级地理数据库中存储的数据:
- 所有数据必须来自单个地理数据库。
- 可以发布未在地理数据库中注册的表或要素类;但不支持发布视图 。
- 如果要允许编辑要素服务中的数据,数据所有者必须向编辑人授予对数据的编辑权限。使用操作系统身份验证时,必须向 ArcGIS Server 帐户授予这些权限。
- 如果允许对要素服务进行编辑,并且要素服务包含参与几何网络的要素类,则要素类数据必须与编辑客户端应用程序处于相同的投影和坐标参考系中。例如,如果计划添加要编辑的要素服务到 ArcGIS Online 或 Portal for ArcGIS 地图查看器,则数据必须存储在 WGS 1984 Web 墨卡托 (Auxiliary Sphere)。请注意,在发布之前不能只改变在 ArcMap 中的投影或 ArcGIS Pro 地图;数据必须使用与编辑客户端相同的投影或坐标参考系。
- 支持版本化和非版本化的地理数据库数据。Esri 建议您在要素服务中使用非版本化的数据,因为非版本化数据比例范围更利于编辑。还有一些非简单数据类型(例如,网络边),但是,必须将它们进行版本化才能通过要素服务编辑它们。
- 如果将托管要素图层发布到 Portal for ArcGIS,并且门户的托管服务器使用 ArcGIS Data Store,请确保发布的地图中的图层的显示表达式未设置为面积或长度字段。
要素服务不支持以下数据类型:
- 注记
- 维度
- 图层组
- 基于视图的图层和表
- 包括虚拟列、where 子句或连接的查询图层
- 栅格
- Terrain
如果地图文档中存在这些图层,则不能发布启用了要素访问的地图服务。
可以发布属于非简单类型(如几何网络、拓扑和网络数据集)的图层,但是要素服务不会返回类型本身。例如,您可以查询参与拓扑的图层,但无法查询拓扑本身。
仅当关系是通过地理数据库关系类定义时,要素服务才允许对相关数据进行查询。如果发布的地图文档具有通过地理数据库关系类相关联的图层和表,要素服务允许对图层进行查询以返回关联表中的对象。请注意,如果要支持返回关联对象的查询,关系类中涉及的表和图层必须包含在发布的地图文档中。如果原始或目标图层或表未包含在地图文档中,则要素服务将忽略该关系。
注:
对于属性关系类,也需要在地图文档中包含关系类表。
准备地理数据库数据以供离线使用
要离线使用地图,在地图所使用的要素服务中启用同步功能。有关详细信息,请参阅准备离线使用的数据。
注:
ArcGIS 客户端和开发人员 SDK 会逐步在要素服务中增加同步功能支持,该功能已引入 ArcGIS 10.2.1。支持离线使用地图的首批客户端为 Collector for ArcGIS 和 ArcGIS Runtime SDK 的 10.2.2 版本。无法在 ArcGIS 10.2.1 之前发布的要素服务中启用同步功能。
其他客户端可通过 ArcGIS REST API 访问同步功能。
数据库特定要求
下面介绍针对存储于数据库中的数据特定的要素服务数据要求:
- 所有数据必须来自单个数据库。
- 如果要允许使用要素服务进行编辑,必须授予对发布的地图中所包含数据的编辑权限。使用操作系统身份验证时,需要向 ArcGIS Server 帐户授予这些权限。
- 向 ArcMap 中的地图添加数据库数据时,将创建一个查询图层。如果改变查询图层定义,请确保查询只包含一个表、没有重复列,且不包含连接、where 子句、虚拟列或合并列。
- 在 ArcMap 中为表定义的查询图层决定着发布什么数据。例如,含有 ArcGIS 不支持的数据类型的表可以进行发布,但不能通过 ArcGIS 或要素服务访问不受支持的数据类型。有关向地图添加数据库表时如何初始化定义查询图层的相关信息,请参阅在 ArcGIS 中查看数据库数据。
- 表格必须包含由数据库维护的唯一整型列。如果您使用 ArcGIS 创建表并将数据加载到数据库,则将自动添加一个数据库维护的唯一整型 ObjectID。如果表格数据是在 ArcGIS 外部创建的,则需要确保其中包含一个由数据库维护的唯一非空整型列。如果不存在这种列,则不能发布要素服务。如果数据库维护的整型列位于 ALTIBASE、DB2、Microsoft Azure SQL 数据库、SQL Server、Oracle 或 PostgreSQL 数据库中,则您可以使用添加增量 ID 字段地理处理工具将其添加到表中。 如果位于其他数据库,则使用 DBMS 工具或 SQL 来创建 ID 列。
- 支持发布数据的数据库平台包括 Microsoft Azure SQL 数据库、SQL Server、PostgreSQL、Oracle、IBM Informix、IBM DB2(Linux、UNIX 或 Windows)、ALTIBASE、Teradata、SAP HANA 和 Dameng。
配置地图文档
定义完数据后,将其添加至想要发布的 ArcMap 地图文档,并设置图层和表的属性。这些属性定义数据的显示方式和可对数据进行处理的客户端。
对于数据库和地理数据库数据,地图文档的配置相似。但是,如果地图文档包含地理数据库数据,可在发布之前配置地图以利用仅在地理数据库中可用的额外功能。
定义符号系统
要素服务可用于查询要素及获取要素的符号系统。客户端可以使用此信息通过与服务中定义的内容一致的符号系统来绘制要素。
服务所返回的符号完全基于 ArcMap 文档中所设置的图层符号系统。每个图层中的每个符号都被称为类型。例如,用简单渲染器(一个符号)符号化后的图层具有一个类型。如果使用唯一值渲染器,则会为渲染器中的每个唯一值返回一个类型。
要素服务支持简单、唯一值、分类间隔以及制图表达等渲染器。如果使用不受支持的渲染器,服务不会启动。使用 ArcGIS Server 日志以确定哪些图层具有不受支持的渲染器。
注:
要素服务不支持比例符号或基于多字段的唯一值渲染器。
大多数符号类型都可用于要素服务;但是,某些情况下,符号会自动降级。
线图层支持简单线符号。如果使用其他符号,则要素服务会将其转换为可最好地表示原始符号的简单线符号。例如,地图文档中的制图线符号可以在要素服务客户端中绘制为简单实线。如果线符号比较复杂或包含多个图层,则要素服务会将线降级,尽可能以最好的方式表示原始线符号。
面图层支持简单填充符号和图片填充符号。如果使用其他符号,要素服务会将它们自动降级为简单填充符号。对于多图层填充符号,要素服务会只考虑顶部图层。而且,填充符号的轮廓符号具有与上面所述的线图层相同的支持级别。
点图层支持简单标记符号和图片标记符号。如果使用其他符号,要素服务会将它们降级为图片标记符号。多图层标记符号也会降级为图片标记符号,其中的图层会合并到单个图层中。不支持掩膜属性(即,可在其中设置标记符号的晕圈)。
启动带要素访问的地图服务时,根据需要检查符号并对其进行降级。如果需要降级,则会在服务器日志中加入相关警告信息以描述降级了哪些符号。
另外还需注意:如果地图文档中存在使用制图表达渲染器的图层,则当客户端通过 REST 访问服务时,渲染器会报告为唯一值渲染器。
注:
Esri 建议在符号中使用 RGB 颜色;否则,当颜色转换为 RGB 颜色格式时会发生微小的变化。
定义要素模板
使用地图文档中的要素模板可实现通过要素服务插入新要素。模板可用于数字化新要素,并具有相应的属性默认值设置。要素服务需要每个要素类型都具有模板。启动编辑会话或发布服务时,将为每个类型创建一个默认模板。
默认模板始终可用于数据库数据。您可以创建用于地理数据库数据的自定义模板。有关详细信息,请参阅自定义要素模板部分。
设置比例范围
默认情况下,要素服务仅显示 1,000 个要素。在所发布的地图中为要素图层设置比例范围,这样图层便不会以大于最大要素数的比例进行显示。
要为要素图层设置比例范围,右键单击 ArcMap 内容列表中的图层,然后单击属性。设置图层属性对话框的常规选项卡上的比例范围。
字段属性
ArcMap 中设置的字段属性通过要素服务显示;其中包括字段别名、字段可见性和字段的只读属性。只读字段包括系统管理的字段(如 ObjectID 和 globalid)、编辑者追踪字段(仅限地理数据库)以及地图文档中设置为只读的字段。
应用更新时,如果为只读字段设置了值,则要素服务将忽略该值。应用插入时,将对只读字段和不可见字段应用默认值。如果未定义默认值,将会应用空值。如果字段不能存储空值,则插入将失败。
图层描述和版权信息
地图文档中指定的图层描述和制作者名单(版权)将在要素服务中作为图层描述和版权信息针对每个图层分别进行显示。
HTML 弹出窗口
要素服务支持在 ArcMap 中配置的 HTML 弹出窗口。HTML 弹出窗口是共享有关要素的 HTML 格式信息的有效而简单的方式。除了能够以自定义的 HTML 格式显示信息,这些工具的工作方式与“识别”工具非常相似。有关如何在 ArcMap 中设置 HTML 弹出窗口的详细信息,请参阅为要素图层设置 HTML 弹出窗口属性。
如果要在 Web 上使用要素服务并使弹出窗口可用,可以考虑在 ArcGIS Online 或 Portal for ArcGIS 地图查看器中对其进行定义。或者,开发人员可以使用客户端 API 本身来定义弹出窗口的样式。
时间支持
要素服务支持时态数据 - 表示某个时间点状态的数据。将时间信息存储在单个或多个属性字段中,并且在特定时间或以时间间隔使用该信息显示数据。要通过要素服务来显示图层的时态数据,在图层属性对话框的时间选项卡中启用时间。有关如何在图层上启用时间的详细信息,请参阅对数据启用时间。
坐标系
发布为要素服务的地图文档可以包含具有不同坐标系的图层。客户端访问要素服务时,要素服务会根据需要转换坐标系。例如,如果客户端使用与图层坐标系不同的坐标系通过要素服务插入要素,要素服务在存储新要素之前会将其转换,以符合图层的坐标系。涉及几何的空间查询在应用前也会转换为图层的坐标系,以返回正确的结果。
要素服务也会根据需要使用地理(基准面)变换。例如,如果图层存储在 NAD27 中并且通过服务插入了坐标系为 WGS 1984 的要素,则在存储要素前会执行 WGS 1984 到 NAD27 的基准面变换。在发布前设置地图文档的数据框属性中的变换,可以控制变换方法。如果未在地图中定义变换,将执行默认变换。
注:
虽然可以发布坐标系不相同的独立图层,但单个表中的所有记录必须使用相同的坐标系。
连接数据
可以为地图文档中的图层或表定义属性连接。发布具有要素访问功能(访问 GIS Server 站点)的地图服务时,地图服务会包含连接列,但要素服务不会包含连接列。要素服务仅包含连接表(在其中定义了连接的表或要素类)中的列。如果图层的符号系统是基于连接列的,地图服务会包含用于符号化要素的渲染器,但要素服务会恢复为简单渲染器。如果图层中的渲染器基于连接中最左边的要素类,则地图服务器和要素服务器包含该渲染器。
不能将连接数据发布到 Portal for ArcGIS 或 ArcGIS Online上。向这两个应用程序发布要素服务(托管要素图层)之前,应删除连接。
附加地理数据库功能
如果数据存储在地理数据库中,则可利用某些附加功能。请在发布要素服务前配置此功能。
定义子类型和属性域
如果发布的数据位于地理数据库中,则在适当情况下可配置数据集以使用子类型和属性域,从而增强要素服务的用户体验并防止数据输入错误。属性域和子类型可用于对数据进行分类,并确保编辑数据时自动输入合适的值。要素服务可以检测并使用子类型和属性域。例如,如果有一个属性域将消火栓颜色限制为红色、黄色或蓝色,则 Web 应用程序会显示一个下拉列表,并只允许从这三种颜色中选择一个。
注:
如果您在不复制数据的情况下发布要素服务,则子类型信息将包含在与您使用的渲染器无关的要素服务中。如果要将要素图层发布到 ArcGIS Online 或发布到使用关系数据存储 (ArcGIS Data Store) 及其托管服务器的 Portal for ArcGIS 部署,则仅在子类型列上使用唯一值渲染器发布图层时才会包含子类型信息。
自定义要素模板
在 ArcMap中,可以创建新模板或修改现有模板以通过要素服务自定义编辑体验。这包括设置用于创建该要素类型的默认构造工具。如果删除特定要素类型的模板,则将在发布服务时创建一个默认模板。
根据模板要创建的要素类型,可使用几种不同类型的构造工具。例如,如果拥有线模板,则只能选择用于创建线要素的工具。随模板保存的构造工具可通过要素服务获取。唯一的例外是被称为线末端的点的点工具,要素服务不支持该工具。有关模板的详细信息,请参阅设置要素模板属性。
保存地图文档时,模板会随地图中的图层一同保存。发布地图文档时,这些模板可供要素服务客户端使用。在地图文档中定义了图层、类型和模板后,即可准备发布服务。
附件
要素服务可用于对附件进行查询和编辑。附件是与地理数据库中的要素或对象关联的介质文件。例如,通过附件可将照片和视频添加到观鸟要素类中,然后单击观察点进行查看。要使用此要素,地理数据库中的数据集必须首先配置为支持附件。将这些数据集添加到地图文档并发布后,客户端可以通过要素服务查询、插入和删除附件。
可附加到要素服务的附件的大小和类型均有限制。有关这些限制以及附件设置修改方法的详细信息,请参阅 ArcGIS REST API 帮助中的上传主题。
有关如何配置数据集以支持附件的详细信息,请参阅在要素类中启用附件。
工作流示例:观鸟要素服务
以下部分将演示一个示例,向您展示如何设置地图文档、如何定义数据以及如何定义通过观鸟要素服务显示的符号系统。要素服务允许观鸟人群将观鸟活动直接提交到地图上并将照片、音频文件和视频文件等介质文件附加到特定观赏点。
注:
本例中的步骤适用于地理数据库和数据库;但是,要素附件和自定义要素模板在数据库中不可用。如果您使用的数据未存储于地理数据库,则可忽略介绍此功能的内容。
定义数据
创作要素服务的第一步是定义通过服务可用的数据。在本例中,首先要处理的是地理数据库中称为 Bird_Sightings 的要素类。要使附件与此要素类关联,必须在 ArcCatalog 中或在 ArcMap 的目录窗口中添加附件。为此,首先连接到数据库,然后右键单击该要素类,最后选择 管理 > 创建附件. 这样便会创建一个表,其中将存储附件和将要素类与附件表关联的关系类。有关如何将附件添加到要素类的详细信息,请参阅在要素类中启用附件。
注:
某些类型的数据需要版本化才能在企业级地理数据库中进行编辑。这一要求也适用于编辑要素服务。有关详细信息,请参阅版本化概述。
定义符号系统
设置数据后,下一步是向 ArcMap 中添加数据并定义符号系统。要素服务所返回的符号完全基于 ArcMap 文档中所设置的图层符号系统。每个图层中的每个符号都被称为类型。在本例中,默认情况下,Bird_Sightings 图层通过简单渲染器(一个符号)进行符号化。
但在这种情况下,您可能想要基于观察类型而将观鸟图层符号化。为此,可使用唯一渲染器。要更改渲染图层的方式,可以右键单击该图层并选择属性。在“属性”对话框中,单击符号系统选项卡并且在类别下选择唯一值。然后可选择要使用的字段以对图层进行符号化。本例有三种特有的观赏类型(观鸟、观巢和观赏珍稀鸟);因此服务将返回三种类型(每种观赏类型一种)。
选择完渲染器后,接下来要选择将表示每种观赏类型的符号。在本例中,在 Esri 符号选择器中选择鸟类符号。将每种观赏类型的前景和背景设置为不同的颜色,以便在要素服务中轻松地加以区分。发布地图文档时,这些符号将转换为 PNG 图形返回到客户端。
设置完符号系统后,下一步是定义可通过要素服务使用的编辑环境。
定义编辑环境
此要素服务的目标是允许鸟类爱好者向地图中输入观鸟信息和全部相关信息。使用地图文档中的要素模板可实现通过要素服务进行编辑。如果未创建模板,则发布服务时会为每种类型创建一个默认模板。不过,您还可以创建新模板或修改现有模板以自定义编辑体验。
在本例中,您想要为此要素服务创建模板。为此,右键单击要素类并选择编辑要素,然后选择组织要素模板。在图层下,选择该图层并单击新建模板。将弹出模板向导,可在其中创建模板。选择为所有不同的观鸟类型创建模板。创建模板后,可通过复制模板来创建其他模板。
在本要素服务中,您想要为珍稀鸟类观赏类型添加一个附加模板。珍稀鸟类是区域中的非时令鸟类或濒危鸟类。要创建模板的副本,请选择要复制的模板并单击复制。在本例中,创建了珍稀鸟类观赏模板的副本,这样一来就可以自定义每个模板以表示两种类型的珍稀鸟类观赏。要自定义模板,可在组织要素模板窗口中双击它。这将打开模板属性,可在其中编辑模板名称及默认字段值。
濒危珍稀鸟类观赏的模板将观赏类型设置为珍稀鸟类观赏,将描述设置为濒危。非时令珍稀鸟类观赏的模板将观赏类型设置为珍稀鸟类观赏,将描述设置为非时令。
其余的属性还可以设置为每个模板中相应的默认值。在本例中,濒危珍稀鸟类观赏需要追踪调查,因此追踪属性可默认设置为是。非时令珍稀鸟类观赏不需要追踪,因此可将追踪属性设置为否。
在模板中将某些属性设置为默认值可简化最终用户的编辑环境,因为他们只需选择要素类型并对其进行数字化。在地图文档中定义了图层、类型和模板后,即可准备发布服务。发布后,最终用户可通过 Web 客户端或 ArcGIS Desktop 访问该服务进行查询和编辑。
有关详细信息,请参阅发布要素服务。
其他示例教程
如果需要有关如何设置和使用要素服务的详细指导,下列教程将提供分步示例,向您展示如何设置地图文档、定义数据以及如何定义通过要素服务提供的符号系统以执行 Web 编辑。根据您的数据存储于企业级地理数据库还是数据库,这些教程将有所不同。
企业级地理数据库
如果您的数据存储于企业级地理数据库,请遵循企业级地理数据库教程:
数据库
如果您的数据存储于数据库,请遵循数据库教程: