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