Skip To Content

创作地图以发布要素服务

当创作地图以发布为要素服务时,您需要考虑要素服务的目的以及要素服务数据的存储位置,因为这会影响到创建、管理和使用要素服务的方式。

本主题将介绍如何创作发布到独立或联合 ArcGIS GIS Server 站点的要素服务以及如何使要素服务参考注册到 GIS Server 站点的地理数据库或数据库中的数据。本创作过程包括准备数据以满足要素服务要求,创建地图,使其包含您要发布的数据,定义符号系统和地图内的其他数据属性,以及为编辑环境定义要素模板(如果您希望要素服务可编辑)。

准备数据

发布时,要素服务包含了添加到地图文档的图层和表格。无论数据源是地理数据库还是数据库,某些数据定义要求是通用的。接下来的部分会介绍通用要求。在其他情况下,定义数据的方法取决于数据是位于地理数据库还是数据库中。企业级或工作组级地理数据库特定要求数据库特定要求部分中会介绍这些区别。

注:

路径事件、x,y 事件和宗地结构之类的虚拟图层在要素服务中是只读的。

数据库和地理数据库通用要求

无论数据源存储在数据库、工作组级地理数据库还是企业级地理数据库,以下要求均适用:

  • 发布到同一要素服务的添加数据必须来自单个源地理数据库或数据库。不能从两个或两个以上不同数据库连接将数据添加到地图并进行发布。

  • 必须为数据定义有效的空间参考。如未定义,则于发布前在 ArcMapArcGIS Pro 中进行指定。如果未定义空间参考,则不能发布数据。

  • 基于视图的图层不支持以下要素服务: 由于无法使用 ArcGIS 客户端编辑视图,因此系统不支持发布包含视图的要素服务,但可以启用要素服务进行编辑。如果希望使用视图中的数据以便在地图或应用程序中参考,可在地图服务中发布视图。

  • 注册到 GIS Server 站点的数据库连接文件存储在一起的数据库帐户必须具有访问数据所需的权限。如果要素服务将保持只读,则帐户只需选择数据的访问权限。如果要使用要素服务进行编辑,必须授予对数据的编辑权限。如果注册到站点的数据库连接使用操作系统身份验证,则必须向 ArcGIS Server 帐户授予这些权限。

  • Esri 建议在发布为可编辑要素服务的地图中仅包含要编辑的数据。将底图图层等不想编辑的数据发布为另一服务。有关规划业务服务和底图服务的详细信息,请参阅地图服务规划。还可以使用 ArcGIS Online 底图。有关设计地图以叠加在线地图和服务的详细信息,请参阅设计地图以叠加 ArcGIS Online、Google 地图或 Bing 地图

  • 如果别人会将要素服务添加到 ArcMapArcGIS Pro 并进行编辑,则不要给发布为要素服务的地图的相同要素类定义多个图层。例如,如果您想要为同一要素类提供不同的符号系统或应用不同的定义查询,请单独创建要素服务;不要使得同一要素服务的同一要素类中包含不同配置的表达。

  • 如果数据包含 z 值,而编辑者需要在编辑要素几何时不支持添加 z 值的客户端(例如 Map ViewerArcGIS Online 门户中的 ArcGIS Enterprise)上编辑要素服务,请配置要素服务以插入默认 z 值

  • 如果数据包含 z 值,而编辑者需要在编辑要素几何时不支持添加 z 值的客户端(例如 Map ViewerArcGIS Online 门户中的 ArcGIS Enterprise)上编辑要素服务,请配置要素服务以针对 m 值插入 NaN

    提示:

    ArcGIS Desktop 客户端支持对含有 m 值和 z 值的要素进行所有编辑操作(插入、删除和更新,包括几何更新),甚至支持创建要素服务数据的本地副本来在 ArcMap 中编辑。因此,如果编辑者仅在这些客户端中编辑要素服务,则您不需要配置默认 z 值和 NaN m 值。

企业级或工作组级地理数据库特定要求

以下要素服务要求特定于企业级或工作组级地理数据库中存储的数据: 您的数据需要满足以上部分所述要求,同时也需要满足本部分所述要求。

  • 可以发布未在地理数据库中注册的表或要素类;但不支持发布视图。

  • 如果允许对要素服务进行编辑,并且要素服务包含参与几何网络的要素类,则要素类数据必须与编辑客户端应用程序处于相同的投影和坐标参考系中。例如,如果计划将要素服务添加到Map Viewer进行编辑,则数据必须存储在 WGS 1984 Web 墨卡托 (Auxiliary Sphere) 中。请注意,在发布之前不能只改变在 ArcMap 中的投影或 ArcGIS Pro 地图;数据必须使用与编辑客户端相同的投影或坐标参考系。

  • 要素服务中支持版本化(传统和分支)和非版本化地理数据库数据。Esri 建议您在要素服务中使用非版本化数据,因为非版本化数据比例范围更利于编辑。还有一些非简单数据类型(例如,网络边),但是,必须将它们进行版本化才能通过要素服务编辑它们。

  • 要编辑分支版本化数据,您必须在参考已注册数据的 ArcGIS Pro 中发布要素图层。有关详细信息,请参阅 ArcGIS Pro 帮助中的共享分支版本化数据
  • 如果地图中存在下列任意一种图层,则不能通过 ArcMap 文档发布启用要素访问的地图服务,也不能通过 ArcGIS Pro 发布参考已注册数据的要素图层:
    • 维度
    • 图层组
    • 基于视图的图层和表
    • 包括虚拟列、where 子句或连接的查询图层
    • 栅格
    • Terrain

  • 通过 ArcGIS Pro 发布参考已注册数据的图层时,您可以在地图中包括注记图层。而通过 ArcMap 地图文档发布启用要素访问的地图服务时,则无法包括注记图层。

  • 通过要素服务访问宗地结构时,宗地结构始终为只读。

  • 可以发布属于非简单类型(如几何网络、拓扑和网络数据集)的图层,但是要素服务不会返回类型本身。例如,您可以查询参与拓扑的图层,但无法查询拓扑本身。

  • 仅当关系是通过地理数据库关系类定义时,要素服务才允许对相关数据进行查询。如果发布的地图文档具有通过地理数据库关系类相关联的图层和表,要素服务允许对图层进行查询以返回关联表中的对象。请注意,如果要支持返回关联对象的查询,关系类中涉及的表和图层必须包含在发布的地图文档中。如果原始或目标图层或表未包含在地图文档中,则要素服务将忽略该关系。
    注:

    对于属性关系类,也需要在地图文档中包含关系类表。

  • 要维护公共设施网络,您必须通过 ArcGIS Pro 将其发布为要素图层。有关详细信息,请参阅 ArcGIS Pro 帮助中的通过公共设施网络发布和使用服务

准备地理数据库数据以供离线使用

要离线使用地图,在地图所使用的要素服务中启用同步功能。有关详细信息,请参阅准备离线使用的数据

注:

ArcGIS 客户端和开发人员 SDK 会逐步在要素服务中增加同步功能支持,该功能已引入 ArcGIS 10.2.1。支持离线使用地图的首批客户端为 Collector for ArcGIS 和 ArcGIS Runtime SDK。无法在 ArcGIS 10.2.1 之前发布的要素服务中启用同步功能。

其他客户端可通过 ArcGIS REST API 访问同步功能。

数据库特定要求

下面将介绍数据库中所存储数据的特定要素服务数据要求。您的数据除了满足地理数据库和数据库的通用要求外,还必须满足这些要求。

  • ArcMapArcGIS Pro 中的地图添加数据库数据时,将创建一个查询图层。如果改变查询图层定义,请确保查询只包含一个表、没有重复列,且不包含连接、where 子句、虚拟列或合并列。
  • 为表定义的查询图层将决定发布什么数据。例如,含有 ArcGIS 不支持的数据类型的表可以进行发布,但不能通过 ArcGIS 或要素服务访问不受支持的数据类型。有关向地图添加数据库表时如何初始化定义查询图层的相关信息,请参阅在 ArcGIS 中查看数据库数据
  • 表格必须包含由数据库维护的唯一整型列。如果您使用 ArcGIS 创建表并将数据加载到数据库,则将自动添加一个数据库维护的唯一整型 ObjectID。如果表格数据是在 ArcGIS 外部创建的,则需要确保其中包含一个由数据库维护的唯一非空整型列。如果不存在这种列,则不能发布要素服务。如果数据库维护的整型列位于 ALTIBASE、Db2、Microsoft Azure SQL 数据库、SQL Server、Oracle 或 PostgreSQL 数据库中,则您可以使用添加增量 ID 字段地理处理工具将其添加到表中。 如果位于其他数据库,则使用数据库管理系统工具或 SQL 来创建 ID 列。
  • 支持发布数据的数据库平台包括 Microsoft Azure SQL 数据库、SQL Server、PostgreSQL、Oracle、IBM Informix、IBM Db2(Linux、UNIX 或 Windows)、ALTIBASE、Teradata、SAP HANA 和 Dameng。

配置地图

定义完数据后,将其添加到想要发布至 ArcGIS ProArcMap 中的地图,并设置图层和表的属性。这些属性定义数据的显示方式和可对数据进行处理的客户端。

ArcGIS Pro 中配置地图

有关配置要进行发布的地图的信息,请参阅 ArcGIS Pro 帮助中的创作 web 地图

ArcMap 中配置地图文档

定义完数据后,将其添加至想要发布的 ArcMap 地图文档,并设置图层和表的属性。这些属性定义数据的显示方式和可对数据进行处理的客户端。

对于数据库和地理数据库数据,地图文档的配置相似。但是,如果地图文档包含地理数据库数据,可在发布之前配置地图以利用仅在地理数据库中可用的额外功能

设置图层名称

将要素类或表添加到地图时,默认名称为数据库内表的完全限定称。您至少应该更改图层名称,使其不包括数据库名称和用户名。右键单击内容列表中的每个图层,然后单击属性。在常规选项卡中输入可表示图层内容的有帮助的名称,且不包括数据库名称和用户名。

例如,如果将名为 mygdb 的企业级地理数据库中的要素类 rivers 添加到地图中,且要素类为用户 gdbdata 所有,则地图中默认的图层名称为 mygdb.gdbdata.rivers。将图层名称更改为 rivers

如果您在图层上设置了定义查询,用来更改地图中所显示的要素,则可以进一步更改图层名称。例如,如果将定义查询设置为仅显示距离矿山 5 英里以内的河流,则更改图层名称以反应该设置很有用;例如,将图层名称设置为 rivers near mines。如果要素类参与关系类,且相关数据会因此包含在您所发布的服务中,则可以更改图层名称来反应这一变化。例如,如果河流要素类参与关系类,且该关系类将其连接到包含分水岭信息的表中,则可以将图层名称更改为 rivers and watersheds

定义符号系统

要素服务可用于查询要素及获取要素的符号系统。客户端可以使用此信息通过与服务中定义的内容一致的符号系统来绘制要素。

服务所返回的符号完全基于 ArcMap 文档中所设置的图层符号系统。每个图层中的每个符号都被称为类型。例如,用简单渲染器(一个符号)符号化后的图层具有一个类型。如果使用唯一值渲染器,则会为渲染器中的每个唯一值返回一个类型。

要素服务支持简单、唯一值、分类间隔以及制图表达等渲染器。如果使用不受支持的渲染器,服务不会启动。使用 ArcGIS Server 日志以确定哪些图层具有不受支持的渲染器。

注:

ArcMap 发布的要素服务不支持比例符号或基于多个字段的唯一值符号系统。

大多数符号类型都可用于要素服务;但是,某些情况下,符号会自动降级。

线图层支持简单线符号。如果使用其他符号,则要素服务会将其转换为可最好地表示原始符号的简单线符号。例如,地图文档中的制图线符号可以在要素服务客户端中绘制为简单实线。如果线符号比较复杂或包含多个图层,则要素服务会将线降级,尽可能以最好的方式表示原始线符号。

面图层支持简单填充符号和图片填充符号。如果使用其他符号,要素服务会将它们自动降级为简单填充符号。对于多图层填充符号,要素服务会只考虑顶部图层。而且,填充符号的轮廓符号具有与上面所述的线图层相同的支持级别。

点图层支持简单标记符号和图片标记符号。如果使用其他符号,要素服务会将它们降级为图片标记符号。多图层标记符号也会降级为图片标记符号,其中的图层会合并到单个图层中。不支持掩膜属性(即,可在其中设置标记符号的晕圈)。

启动带要素访问的地图服务时,根据需要检查符号并对其进行降级。如果需要降级,则会在服务器日志中加入相关警告信息以描述降级了哪些符号。

另外还需注意:如果地图文档中存在使用制图表达渲染器的图层,则当客户端通过 REST 访问服务时,渲染器会报告为唯一值渲染器。

注:

Esri 建议在符号中使用 RGB 颜色;否则,当颜色转换为 RGB 颜色格式时会发生微小的变化。

定义要素模板

使用地图文档中的要素模板可实现通过要素服务插入新要素。模板可用于数字化新要素,并具有相应的属性默认值设置。要素服务需要每个要素类型都具有模板。启动编辑会话或发布服务时,将为每个类型创建一个默认模板。

默认模板始终可用于数据库数据。您可以创建用于地理数据库数据的自定义模板。有关详细信息,请参阅自定义要素模板部分。

设置比例范围

默认情况下,要素服务仅显示 1,000 个要素。在所发布的地图中为要素图层设置比例范围,这样图层便不会以大于最大要素数的比例进行显示。

要为要素图层设置比例范围,右键单击 ArcMap 内容列表中的图层,然后单击属性。设置图层属性对话框的常规选项卡上的比例范围

字段属性

ArcMap 中设置的字段属性通过要素服务显示;其中包括字段别名、字段可见性和字段的只读属性。只读字段包括系统管理的字段(如 ObjectID 和 globalid)、编辑者追踪字段(仅限地理数据库)以及地图文档中设置为只读的字段。

应用更新时,如果为只读字段设置了值,则要素服务将忽略该值。应用插入时,将对只读字段和不可见字段应用默认值。如果未定义默认值,将会应用空值。如果字段不能存储空值,则插入将失败。

图层描述和版权信息

地图文档中指定的图层描述和制作者名单(版权)将在要素服务中作为图层描述和版权信息针对每个图层分别进行显示。

HTML 弹出窗口

要素服务支持在 ArcMap 中配置的 HTML 弹出窗口。HTML 弹出窗口是共享有关要素的 HTML 格式信息的有效而简单的方式。除了能够以自定义的 HTML 格式显示信息,这些工具的工作方式与“识别”工具非常相似。有关如何在 ArcMap 中设置 HTML 弹出窗口的详细信息,请参阅为要素图层设置 HTML 弹出窗口属性

如果要在 Web 上使用要素服务并使弹出窗口可用,可以考虑在Map Viewer中对其进行定义。或者,开发人员可以使用客户端 API 本身来定义弹出窗口的样式。

时间支持

要素服务支持时态数据 - 表示某个时间点状态的数据。将时间信息存储在单个或多个属性字段中,并且在特定时间或以时间间隔使用该信息显示数据。要通过要素服务来显示图层的时态数据,在图层属性对话框的时间选项卡中启用时间。有关如何在图层上启用时间的详细信息,请参阅对数据启用时间

坐标系

发布为要素服务的地图文档可以包含具有不同坐标系的图层。客户端访问要素服务时,要素服务会根据需要转换坐标系。例如,如果客户端使用与图层坐标系不同的坐标系通过要素服务插入要素,要素服务在存储新要素之前会将其转换,以符合图层的坐标系。涉及几何的空间查询在应用前也会转换为图层的坐标系,以返回正确的结果。

要素服务也会根据需要使用地理(基准面)变换。例如,如果图层存储在 NAD27 中并且通过服务插入了坐标系为 WGS 1984 的要素,则在存储要素前会执行 WGS 1984 到 NAD27 的基准面变换。在发布前设置地图文档的数据框属性中的变换,可以控制变换方法。如果未在地图中定义变换,将执行默认变换。

注:

虽然可以发布坐标系不相同的独立图层,但单个表中的所有记录必须使用相同的坐标系。

连接数据

可以为地图文档中的图层或表定义属性连接。发布具有要素访问功能(访问 GIS Server 站点)的地图服务时,地图服务会包含连接列,但要素服务不会包含连接列。要素服务仅包含连接表(在其中定义了连接的表或要素类)中的列。如果图层的符号系统是基于连接列的,地图服务会包含用于符号化要素的渲染器,但要素服务会恢复为简单渲染器。如果图层中的渲染器基于连接中最左边的要素类,则地图服务器和要素服务器包含该渲染器。

不能将连接数据发布到 Portal for ArcGISArcGIS Online 上。向这两个应用程序发布要素服务(托管要素图层)之前,应删除连接。

附加地理数据库功能

如果数据存储在地理数据库中,则可利用某些附加功能。请在发布要素服务前配置此功能。

定义子类型和属性域

如果发布的数据位于地理数据库中,则在适当情况下可配置数据集以使用子类型属性域,从而增强要素服务的用户体验并防止数据输入错误。属性域和子类型可用于对数据进行分类,并确保编辑数据时自动输入合适的值。要素服务可以检测并使用子类型和属性域。例如,如果有一个属性域将消火栓颜色限制为红色、黄色或蓝色,则 Web 应用程序会显示一个下拉列表,并只允许从这三种颜色中选择一个。

注:

如果您在不复制数据的情况下发布要素服务,则子类型信息将包含在与您使用的渲染器无关的要素服务中。如果要将要素图层发布到 ArcGIS OnlineArcGIS Enterprise 门户中,则仅在子类型列上使用唯一值渲染器发布图层时才会包含子类型信息。

自定义要素模板

ArcMap 中,可以创建新模板或修改现有模板以通过要素服务自定义编辑体验。这包括设置用于创建该要素类型的默认构造工具。如果删除特定要素类型的模板,则将在发布服务时创建一个默认模板。

根据模板要创建的要素类型,可使用几种不同类型的构造工具。例如,如果拥有线模板,则只能选择用于创建线要素的工具。随模板保存的构造工具可通过要素服务获取。唯一的例外是被称为线末端的点的点工具,要素服务不支持该工具。有关模板的详细信息,请参阅设置要素模板属性

保存地图文档时,模板会随地图中的图层一同保存。发布地图文档时,这些模板可供要素服务客户端使用。在地图文档中定义了图层、类型和模板后,即可准备发布服务

附件

要素服务可用于对附件进行查询和编辑。附件是与地理数据库中的要素或对象关联的介质文件。例如,通过附件可将照片和视频添加到观鸟要素类中,然后单击观察点进行查看。要使用此要素,地理数据库中的数据集必须首先配置为支持附件。将这些数据集添加到地图文档并发布后,客户端可以通过要素服务查询、插入和删除附件。

可附加到要素服务的附件的大小和类型均有限制。有关这些限制以及附件设置修改方法的详细信息,请参阅 ArcGIS REST API 帮助中的上传主题。

有关如何配置数据集以支持附件的详细信息,请参阅在要素类中启用附件

ArcMap 工作流示例:观鸟要素服务

以下部分将演示一个示例,向您展示如何设置地图文档、如何定义数据以及如何定义通过观鸟要素服务显示的符号系统。要素服务允许观鸟人群将观鸟活动直接提交到地图上并将照片、音频文件和视频文件等介质文件附加到特定观赏点。

注:

本例中的步骤适用于地理数据库和数据库;但是,要素附件和自定义要素模板在数据库中不可用。如果您使用的数据未存储于地理数据库,则可忽略介绍此功能的内容。

定义数据

创作要素服务的第一步是定义通过服务可用的数据。在本例中,首先要处理的是地理数据库中称为 Bird_Sightings 的要素类。要使附件与此要素类关联,必须在 ArcCatalog 中或在 ArcMap目录窗口中添加附件。为此,首先连接到数据库,然后右键单击该要素类,最后选择管理 > 创建附件。这样便会创建一个表,其中将存储附件和将要素类与附件表关联的关系类。有关如何将附件添加到要素类的详细信息,请参阅在要素类中启用附件

Bird_Sightings 要素类

注:

某些类型的数据需要版本化才能在企业级地理数据库中进行编辑。这一要求也适用于编辑要素服务。有关详细信息,请参阅版本化概述

定义符号系统

设置数据后,下一步是向 ArcMap 中添加数据并定义符号系统。要素服务所返回的符号完全基于 ArcMap 文档中所设置的图层符号系统。每个图层中的每个符号都被称为类型。在本例中,默认情况下,Bird_Sightings 图层通过简单渲染器(一个符号)进行符号化。

但在这种情况下,您可能想要基于观察类型而将观鸟图层符号化。为此,可使用唯一渲染器。要更改渲染图层的方式,可以右键单击该图层并选择属性。在“属性”对话框中,单击符号系统选项卡并且在类别下选择唯一值。然后可选择要使用的字段以对图层进行符号化。本例有三种特有的观赏类型(观鸟、观巢和观赏珍稀鸟);因此服务将返回三种类型(每种观赏类型一种)。

设置 Bird_Sightings 图层的符号系统
简单渲染器生成一种类型的 Bird_Sightings 图层
设置 Bird_Sightings 图层的符号系统
唯一值渲染器生成三种类型的 Bird_Sightings 图层

选择完渲染器后,接下来要选择将表示每种观赏类型的符号。在本例中,在 Esri 符号选择器中选择鸟类符号。将每种观赏类型的前景和背景设置为不同的颜色,以便在要素服务中轻松地加以区分。发布地图文档时,这些符号将转换为 PNG 图形返回到客户端。

用于符号化不同观鸟类型的字符标记符号
用于符号化不同观鸟类型的字符标记符号。

设置完符号系统后,下一步是定义可通过要素服务使用的编辑环境。

定义编辑环境

此要素服务的目标是允许鸟类爱好者向地图中输入观鸟信息和全部相关信息。使用地图文档中的要素模板可实现通过要素服务进行编辑。如果未创建模板,则发布服务时会为每种类型创建一个默认模板。不过,您还可以创建新模板或修改现有模板以自定义编辑体验。

在本例中,您想要为此要素服务创建模板。为此,右键单击要素类并选择编辑要素,然后选择组织要素模板。在图层下,选择该图层并单击新建模板。将弹出模板向导,可在其中创建模板。选择为所有不同的观鸟类型创建模板。创建模板后,可通过复制模板来创建其他模板。

在本要素服务中,您想要为珍稀鸟类观赏类型添加一个附加模板。珍稀鸟类是区域中的非时令鸟类或濒危鸟类。要创建模板的副本,请选择要复制的模板并单击复制。在本例中,创建了珍稀鸟类观赏模板的副本,这样一来就可以自定义每个模板以表示两种类型的珍稀鸟类观赏。要自定义模板,可在组织要素模板窗口中双击它。这将打开模板属性,可在其中编辑模板名称及默认字段值。

两种鸟类观赏类型的模板属性对话框
需要追踪调查的濒危鸟类观赏模板属性和无需追踪调查的非时令鸟类观赏的模板属性

濒危珍稀鸟类观赏的模板将观赏类型设置为珍稀鸟类观赏,将描述设置为濒危。非时令珍稀鸟类观赏的模板将观赏类型设置为珍稀鸟类观赏,将描述设置为非时令

其余的属性还可以设置为每个模板中相应的默认值。在本例中,濒危珍稀鸟类观赏需要追踪调查,因此追踪属性可默认设置为。非时令珍稀鸟类观赏不需要追踪,因此可将追踪属性设置为

在模板中将某些属性设置为默认值可简化最终用户的编辑环境,因为他们只需选择要素类型并对其进行数字化。在地图文档中定义了图层、类型和模板后,即可准备发布服务。发布后,最终用户可通过 Web 客户端或 ArcGIS Desktop 访问该服务进行查询和编辑。

有关详细信息,请参阅通过 ArcMap 发布要素服务

其他示例教程

如果需要有关如何设置和使用要素服务的详细指导,下列教程将提供分步示例,向您展示如何设置地图文档、定义数据以及如何定义通过要素服务提供的符号系统以执行 Web 编辑。根据您的数据存储于企业级地理数据库还是数据库,这些教程将有所不同。

企业级地理数据库

如果您的数据存储于企业级地理数据库,请遵循企业级地理数据库教程:

教程:使用企业级地理数据库中的数据执行 Web 编辑

教程:使用企业级地理数据库中复制的数据执行 Web 编辑

教程:配置要素服务数据以供离线使用

数据库

如果您的数据存储于数据库,请遵循数据库教程:

教程:使用数据库中的数据执行 web 编辑