通过基于 Web 的编辑可实现较多的用户来添加和改进数据。这些用户包括现场工作人员、公司其他部门的分析人员,甚至还可以包括范围广泛的志愿者,他们可通过易于操作的编辑界面提供有价值的数据。
在本教程中,您将向数据库中加载数据、授予数据权限、将数据库注册到 ArcGIS Server、创作地图文档、发布要素服务并通过 ArcGIS Online 中的地图查看器使用要素服务来编辑数据。
开始学习本教程前
如果要通过数据库发布要素服务,则假设您拥有一个可存储空间数据的数据库。如果没有,则必须安装数据库管理软件并创建一个这样的数据库。某些情况下,您还必须安装空间类型或启用数据库存储空间数据的功能。您可通过以下数据库管理系统之一发布要素服务:
- ALTIBASE HDB
- DAMENG
- IBM DB2(需要 DB2 Spatial Extender)
- IBM Informix(需要 Informix Spatial Data Blade)
- Oracle(安装 ST_Geometry 类型或使用 Oracle 的 SDO_Geometry 类型)
- PostgreSQL(安装 ST_Geometry 类型或 PostGIS)
- SAP HANA
- Teradata
您将需要两个用户来完成本教程:一个用户拥有在数据库中创建表和要素类的权限(数据所有者),另一个用户最初只拥有数据库连接权限(数据编辑人员)。您将向数据编辑人员授予编辑数据以将数据发布为要素服务的权限。
如果您是数据库管理员,则可使用数据库管理系统工具创建这两个用户,并授予其所需的权限。或者,您可使用创建数据库用户地理处理工具创建数据所有者用户,但您仍需使用数据库管理系统工具创建数据编辑人员用户。如果您不是数据库管理员,则请数据库管理员为您创建一个数据所有者用户和数据编辑人员用户,用以完成本教程。
如果刚安装 ArcGIS Server,在开始学习本教程前需要阅读下列内容:
- 有关如何配置 ArcGIS Server 站点的详细信息,请参阅帮助部分安装后配置入门。
- 如果您之前没有要素服务的使用经验,请参阅什么是要素服务?
- 要将数据发布到 ArcGIS Server,您必须注册数据。如何注册数据取决于您希望要素服务访问源数据库中的数据还是访问数据副本。考虑到本教程的目的,要素服务将访问您数据库中的数据。但是,您应该了解这样选择的含义以及其他可用的选项。请参阅使数据可供 ArcGIS Server 访问和确定服务器访问服务数据的方式,帮助您确定最适合实际情况的方法。
准备数据
本教程包含有关通过 ArcGIS 向数据库复制要素类的说明。通过 ArcGIS 复制的数据需符合下列条件,并要求将数据发布为要素服务:
- 发布到待编辑要素服务的要素类必须包含一个非空整型字段,该字段由数据库中的唯一值自动填充。该字段将用作 ObjectID 字段。
提示:
如果通过 ArcGIS 将您的数据添加到数据库,则将有一个指定的 ObjectID 字段自动添加到表。如果您想要发布 DB2、Oracle、PostgreSQL 或 ALTIBASE 中存储的现有要素类,则可使用添加递增 ID 字段工具向表中添加一个由数据库填充的非空整型字段。
- 针对要素类,ArcGIS 只识别一个空间列、一个空间参考和一个几何类型(即点、线或面)。如果您的要素类包含一个以上空间列,ArcGIS 将使用从左向右读取表时出现的第一个列。如果您的要素类包含具有不同空间参考、几何或维度的记录,则 ArcGIS 将读取并使用要素类中第一个记录的值。不会使用与该值不相符的记录。
- 发布到要素服务的所有要素类必须具有空间参考。空间参考未知的要素类无法发布。
- ArcGIS 可识别特定数据类型。如果您的要素类包含 ArcGIS 不支持的数据类型,则这些数据类型无法通过 ArcGIS 客户端查看,且无法通过要素服务访问。有关 ArcGIS 运行所使用的数据类型列表,请参阅 ArcGIS 支持的 DBMS 数据类型。
要在 ArcGIS 中创建满足所有要求的要素类,请完成本教程的下一部分。
向数据库添加要素类
以数据所有者(拥有足以在数据库中创建表的权限的用户)身份进行数据库连接,并从随 ArcGIS for Server 一并安装的文件地理数据库复制要素类。
连接到 ArcGIS Server 样本数据
文件地理数据库 (tree_maintenance.gdb) 随 ArcGIS for Server 一并安装。从 ArcMap 进行连接。
如果在 Linux 计算机上安装 ArcGIS for Server,则以复制或 FTP 方式将 tree_maintenance.gdb 传送到 ArcGIS for Desktop 计算机的目录上。数据在 Linux 中的默认位置为 <home directory of installing user>/arcgis/server/help/samples/data。
- 启动 ArcCatalog 或 ArcMap,然后打开目录窗口。
- 单击连接到文件夹 。
- 选择样本数据文件夹,该文件夹位于您安装 ArcGIS for Server (Windows) 的目录,或是从 ArcGIS for Server (Linux) 安装中复制。
默认情况下,Windows 数据安装在 C:\Program Files\ArcGIS\Server\help\samples\data 中。
- 单击确定,将文件夹添加到目录树的文件夹连接中。
以数据所有者身份进行数据库连接
以数据所有者用户身份进行数据库连接,这样便可将数据复制到数据库。
- 在目录窗口的目录树中展开数据库连接节点。
- 双击添加数据库连接,以数据所有者用户身份进行数据库连接。
有关数据库连接的详细信息,请参阅 ArcMap 中的数据库连接。
- 命名连接文件,这样便可将其标识为数据所有者的连接。
例如,右键单击新连接,指向重命名,然后输入 dataowner@mydatabase.sde。
将数据复制到您的数据库
从 tree_maintenance 文件地理数据库复制 trees、villages 和 streets 要素类,然后将其粘贴到您的数据库。
- 打开样本数据文件夹。
- 双击 tree_maintenance 地理数据库进行连接。
- 按住 Shift 键的同时在 tree_maintenance 地理数据库中选择 streets、trees 和 villages 要素类。
必须单击“内容”选项卡 (ArcCatalog) 或“内容”面板 (ArcMap) 中的要素类以同时选择多个要素类。
- 右键单击高亮显示的要素类,然后单击复制。
- 右键单击数据库连接,然后单击粘贴。
streets、trees 和 villages 要素类的副本在您的数据库中。
授予数据权限
要访问您所发布数据的用户必须拥有足以编辑数据的权限。例如,如果您希望用户在您发布的要素类中插入新要素以及更新现有要素,则必须向连接用户授予对数据的选择、插入和更新权限。如果您只希望用户更新现有记录,则向连接用户授予对数据的选择和更新权限。
如果您是向测试网站发布数据或仅为教育目的完成本教程,则可以数据所有者身份发布数据。但是,如果您是向生产站点发布数据,则用于访问数据的连接应具备执行此操作需要的最低权限。
如果您以数据库验证的用户身份执行发布,则需向数据库用户授予数据权限。如果您使用 Windows 身份验证进行数据库连接,则必须向 ArcGIS Server 帐户授予权限。
以下步骤针对您的要素服务中将包含的要素类授予选择、插入和更新权限。如果您使用自己的数据,则请执行相同的基本步骤以授予数据权限。
- 右键单击目录树中数据库连接下树的要素类,指向管理,然后单击权限。
将打开权限对话框。
- 如果数据编辑人员用户或 ArcGIS Server 帐户已经在列表中,则选复选框以针对树的要素类授予选择、插入和更新权限。
- 如果数据编辑人员数据库用户或 ArcGIS Server 帐户尚不在列表中,则请执行以下操作:
- 单击添加打开用户/角色对话框。
- 如果您拥有查看列出数据库中所有用户和角色的系统表的数据库权限,则可通过选中列表中用户或角色旁边的复选框选中希望添加的数据库用户或角色;否则,需要输入您要授予权限的数据库用户、数据库角色、操作系统登录帐户或 Windows 组的名称。
- 单击确定关闭用户/角色对话框。
已选中选择复选框。
- 选中插入和更新复选框,然后单击确定应用权限并关闭对话框。
- 对 villages 和 streets 要素类重复执行以上步骤。
创作一个地图文档以支持要素服务和 Web 编辑
当您拥有要发布的数据,并已授予 ArcGIS Server 访问数据的权限后,则可制作地图文档以支持将用于 Web 编辑的要素服务。
以数据编辑人员身份进行数据库连接
如果您使用数据库身份验证,则以数据编辑人员用户身份进行数据库连接。执行步骤与以数据所有者身份进行数据库连接相同,只不过这次是以数据编辑人员身份进行连接。选中保存用户名和密码,以确保将用户名和密码随连接一同保存。
如果您使用操作系统身份验证,则可使用至少拥有数据选择权限的登录帐户进行连接。要素服务将使用 ArcGIS Server 帐户访问数据,您已向该帐户授予了编辑数据的权限,但此帐户并非用于创建和发布地图的登录帐户。
为帮助您查找连接文件,请将其重命名为 dataeditor@mydatabase。将数据库注册到服务器时,您将需要此连接文件。
将数据库注册到服务器
要发布到 ArcGIS Server,您必须创建到 GIS 服务器的发布者连接,并将您的数据库注册到该服务器。针对本教程,您将注册数据库,这样发布者数据库与服务器数据库便相同。这意味着,已发布的要素服务将直接访问源数据库中的数据。
- 首先,连接到服务器以发布数据。按照在 ArcGIS for Desktop 中与 ArcGIS Server 建立发布者连接中的说明进行此类连接。
- 连接到服务器之后,便可注册数据库。右键单击 GIS 服务器连接,然后单击服务器属性。
- 在数据存储选项卡中,单击已注册数据库旁的添加 按钮。
将打开注册数据库对话框。
- 输入待注册数据库的唯一名称。
- 单击导入,然后浏览至您在最后一部分创建的数据库连接文件(编辑人员的数据库连接),并将其选中。
- 确保选中了与发布者数据库连接相同旁的复选框。
- 单击确定关闭注册数据库对话框。
- 单击确定关闭 ArcGIS Server 属性对话框。
向地图添加数据,并设置属性
可从目录窗口的编辑人员数据库连接中将您要发布的要素类拖至地图。ArcMap 将检查其所需的属性,如 ObjectID 字段和空间参考。如果其无法确定这些属性,系统将提示您指定所需信息。
向 ArcMap 添加数据库表时,将定义一个查询图层以访问该表。您可更改定义了在 ArcMap 中显示哪些数据的查询图层。有关更改查询图层定义的说明,请参阅修改查询图层。
注:
查询定义无法连接表;如果您要发布要素服务,则查询图层只可包含一个表中的数据。
完成地图配置之后,保存您的地图文档。
- 如果 ArcMap 未启动,则将其启动。
- 在目录窗口中双击数据编辑人员连接以进行数据库连接。
- 从数据库连接中逐一选择要素类并拖至地图上。
如果您使用教程数据,请选择 villages、trees 和 streets 要素类。
ArcMap 将计算数据的空间范围并在地图上显示要素。
- 确保以正确的顺序绘制图层。对于教程数据,绘制顺序应为 trees、streets、villages。如果图层顺序错误,请单击按绘制顺序列出 ,并将图层拖动为内容列表中的正确顺序。
将数据添加到地图之后,您便可设置字段属性、符号系统和图层描述。您还可以配置 HTML 弹出窗口。有关设置地图属性的详细信息,请参阅创作要素服务。
设置 trees 图层的属性
设置 trees 图层的常规属性。
- 在 ArcMap 内容列表中右键单击 trees 图层,然后单击属性。
将打开图层属性对话框。
- 在常规选项卡中,将图层名称更改为 Pubic Trees。
- 输入以下内容作为描述:由公园部门维护的公共空间的树清单。
- 设置最小比例,超出该比例将不绘制树图层。
- 在比例范围下单击缩放超过下列限制时不显示图层。
- 将最小比例设置为 1:500,000。
- 将最大比例设置为 <无>。
- 单击应用应用您迄今所做出的属性更改。
设置字段别名。
- 单击字段选项卡。
- 按如下所述向字段分配别名:
- 从字段列表中选择 tree_planted,然后在别名字段输入种植日期。
- 从字段列表中选择 eg_decid,然后输入常绿林或落叶林作为别名。
- 从字段列表中选择 last_trimmed,然后输入修整日期作为别名。
- 单击应用设置字段别名。
接下来,更改 trees 图层的符号系统。
- 单击图层属性对话框的符号系统选项卡。
- 单击类别。
默认情况下,将选择唯一值类别。
- 从值字段下拉列表中选择常绿林或落叶林。
- 单击添加所有值。
d 和 e 值将以默认符号和颜色添加到列表中。
- 更改落叶林 (d) 树木的符号。
- 双击 d 的默认符号,打开符号选择器对话框。
- 单击样式引用并选中 Civic 旁的复选框。
- 单击确定,将 Civic 符号添加到符号选择器。
- 选择 Tree 3 符号。
您需要向下滚动以找到符号。
- 单击确定应用更改。
- 更改常绿林 (e) 树木的符号。
- 双击 e 的默认符号,打开符号选择器对话框。
- 选择 Tree 2 符号。
- 单击确定应用符号更改。
- 单击确定,应用所有符号系统更改并关闭图层属性对话框。
设置 villages 图层的属性
设置 villages 图层的常规属性。
- 右键单击 ArcMap 内容列表中的 villages 图层,然后单击属性。
将打开图层属性对话框。
- 在常规选项卡中,将图层名称更改为 Villages。
- 输入以下内容作为描述:Osokopf 乡村的边界。
- 设置绘制 villages 图层的最小比例。
- 在比例范围下单击缩放超过下列限制时不显示图层。
- 将最小比例设置为 1:10,000,000。
- 将最大比例设置为 <无>。
- 单击应用应用您迄今所做出的属性更改。
设置字段别名。
- 单击字段选项卡。
- 按如下所述向字段分配别名:
- 从字段列表中选择 village_name,然后输入 Name 作为别名。
- 从字段列表中选择人口,然后输入 Population (2010) 作为别名。
- 单击应用。
更改用于对 villages 图层进行符号化的颜色。
- 单击符号系统选项卡。
- 单击类别。
默认情况下,将选择唯一值。
- 从值字段下拉列表中选择名称。
- 单击添加所有值。
- 针对各乡村选择不同的颜色。
- 完成符号系统的更改后,单击确定以应用所有更改,然后关闭图层属性对话框。
设置街道图层的属性
建议的方法是为参考数据发布单独的地图服务。但是,为了减少完成本教程所需的步骤,街道图层将成为您要素服务的一部分,即使其只用作参考数据。
- 按照您针对其他图层实施的相同步骤来设置街道图层的常规属性、符号系统和字段别名。
- 单击标注选项卡。
- 选中标注此图层中的要素。
- 确保标注字段设置为 st_name 字段。
- 设置标注的比例范围。
- 在其他选项下单击比例范围。
- 单击缩放超过下列限制时不显示标注,并将最小比例设置为 1:250,000。
- 单击确定关闭比例范围对话框。
- 单击应用以应用更改。
默认情况下,HTML 弹出窗口可用于所有要素类。但是,您不会编辑街道图层,所以可禁用 HTML 弹出窗口。
- 单击图层属性对话框的 HTML 弹出窗口选项卡。
- 取消选中使用 HTML 弹出窗口工具显示此图层的内容。
- 单击确定应用更改并关闭图层属性对话框。
发布启用了要素访问的地图服务
现在您的数据和地图已经就绪,您可发布启用了要素访问功能的地图服务。
- 在 ArcMap 的主菜单中,选择文件 > 共享为 > 服务。
- 在共享为服务窗口中,选择发布服务。单击下一步。
- 在发布服务对话框中,选择本教程中前面部分中设置的 ArcGIS Server 发布者连接。
- 默认情况下,地图文档的名称可指定服务名。不使用默认值,而是输入 TreeMaintenance。
- 默认情况下,服务会发布到 ArcGIS Server 的根文件夹下。接受默认位置,然后单击继续。
将显示服务编辑器对话框。使用服务编辑器 选择用户可对要素服务执行的操作,还可对服务器显示要素服务的方式进行精细的控制。
- 单击功能选项卡。
- 默认情况下,地图和 KML 两项功能自动启用。选择要素访问。启用此选项可使用地图服务创建关联要素服务,从而允许客户端在 Web 上执行要素编辑。
- 在服务编辑器对话框的左侧窗格中,单击要素访问,然后查看将用于服务的 URL。
- 在允许的操作下,取消选中删除。
请记住,您没有授予连接用户删除要素的权限。
- 在服务编辑器对话框的左侧窗格中,单击项目描述并输入下列内容:
- 对于摘要,输入 Service used to update the inventory of public trees。
- 对于标签,输入 trees,maintenance,parks。
- 对于描述,输入 The Tree Maintenance feature service can be used to update the inventory of public trees。
- 单击分析,以确保可发布要素。
如果返回任何错误消息,则必须加以修正才能进行发布。可以修正警告或通知消息,但并非必须如此;这些消息用于提高生成服务的性能和易用性,并非服务生效所需。可忽略警告 24041,因为通过要素服务编辑数据库数据时只能使用默认模板。
- 单击发布 。
要素服务已发布到 ArcGIS Server。现在,您即可在 Web 应用程序中使用并编辑要素服务。
在 Web 应用程序中使用要素服务。
在本教程的这一部分中,我们将使用 ArcGIS Online 中的地图查看器,通过 Web 在数据库中添加、更新和编辑要素。您可直接通过 ArcGIS Server 服务目录部署该地图查看器。使用 map viewer 无需进行任何配置或编程操作。
要开始此过程,请执行以下步骤:
- 打开 Web 浏览器浏览 ArcGIS Server 服务目录。通常位于 http://gisserver.domain.com:6080/arcgis/rest/services。还可以通过打开随 ArcGIS Server 一起安装的快捷方式来访问“服务目录”。
- 在服务列表中,单击 TreeMaintenance (Feature Server)。
- 在 TreeMaintenance (FeatureServer) 页面中列出了 trees、streets 和 villages 要素类以及该要素服务支持的操作。查看这些参数,确保其正确。
- 单击页面顶部的在 ArcGIS Online 地图查看器中查看。
此时会打开一个显示此地图查看器的新窗口(或选项卡)。
- 在 map viewer 顶部单击编辑。
随即打开添加要素对话框。
- 放大至地图的不同区域,编辑现有要素的属性。要编辑属性,请:
- 单击某个要素。
随即 HTML 弹出窗口打开。
- 在字段中输入一个新值。对于日期,可从日历中进行选择。
- 单击关闭应用编辑并关闭 HTML 弹出窗口。
- 单击某个要素。
- 另外,向 trees 图层添加新要素。要执行的操作:
- 单击添加要素窗格中的 d(落叶林)或 e(常绿林)符号。
- 单击地图上您要放置树的位置。
- 选择添加的树,并通过 HTML 弹出窗口添加属性。
- 单击关闭应用编辑并关闭 HTML 弹出窗口。
- 验证对要素所做的编辑是否反映在数据库中。
可通过切换回 ArcMap 文档以及刷新地图显示来完成此操作。添加到 Web 地图的要素显示在地图显示中。要查看对属性的编辑,请打开 ArcMap 中 trees 图层的属性表。
- 如有需要,可登陆 ArcGIS Online 保存您的地图。
延伸阅读
既然您已使用 ArcGIS Online 地图查看器成功测试了要素服务,您可能会考虑如何在其他 ArcGIS 客户端中使用和共享要素服务。例如
- Portal for ArcGIS 同样拥有地图查看器。您可以与您作为其中成员的门户组织共享您的要素服务,并允许其他人在地图查看器中编辑要素服务。
- 在 ArcGIS Online 和 Portal for ArcGIS 中,可使用应用程序模板创建自定义 Web 制图应用程序。这些模板可部署在组织的 Web 服务器上。
- ArcGIS API for JavaScript 提供了最先进的 Web 制图功能和自定义选项。如果您喜欢使用此 API 进行编程,可利用与您在本教程中创建的要素服务相同的要素服务,为 web 用户提供丰富的编辑体验。
请记住,基于 Web 的编辑允许外部用户添加并改进数据。选择使用上述一个或全部 ArcGIS 客户端,您会获得有助于您针对特定目的、目标或组织策略定制编辑方案的其他选项。