工作流:使用 ArcGIS Spatial Data Server for IIS 提供数据库数据

复杂程度:初级 数据要求:使用自己的数据

您可以根据本主题中提供的示例来设置 ArcGIS Spatial Data Server for IIS 以及从现有数据库发布数据。只需将特定信息(空间数据服务器名称、数据库名称、用户名等)替换为适合用户站点的信息。

在本示例中,将创建一个应用程序,使废物运输商的客户能够请求提供新垃圾桶或安排大型项目回收。

SQL Server 数据库中的 customers 要素类将作为可编辑的要素服务发布,service_area 要素类将作为只读要素服务发布到空间数据服务器。

部署空间数据服务器

首先,设置空间数据服务器、用户和数据源。

安装 ArcGIS Spatial Data Server for IIS

请根据软件随附的安装指南中的说明来安装 ArcGIS Spatial Data Server for IIS。该指南包含有关软件的系统要求、IIS 要求、授权和安装的信息。

注注:

要通过 ArcGIS.com 上发布的服务进行编辑,必须在公共服务器(位于防火墙外部)上安装 ArcGIS Spatial Data Server。

为连接用户授予权限

在下一组步骤中,您将指定要连接到数据源的用户。该用户必须获得要发布到空间数据服务器的数据集的权限。例如,如果希望用户对要素服务中数据只具有查询权限,则为数据源指定的用户只需对要素服务中的数据集具有选择权限。

在本工作流示例中,要素服务将提供查询和创建权限;因此,必须为连接到数据源的用户授予对 customers 要素类的选择和插入权限。

如下所示,在 SQL Server 实例中创建登录帐户 webeditor,并将其添加到数据库 threers 中。随后,为数据库用户创建方案,并授予该用户对 customers 要素类的选择和插入权限:

CREATE LOGIN webeditor WITH PASSWORD=N'We4Svcs', 
  DEFAULT_DATABASE=threers, 
  CHECK_EXPIRATION=OFF, 
  CHECK_POLICY=ON;
GO

USE threers;

CREATE USER webeditor FOR LOGIN webeditor;
ALTER USER webeditor WITH DEFAULT_SCHEMA=webeditor;
GO

CREATE SCHEMA webeditor AUTHORIZATION webeditor;
GO

GRANT SELECT,INSERT
  ON cdata.customers
  TO webeditor;

创建数据源

在创建数据源时,应指定空间数据服务器要以何种用户身份连接哪个数据库。

可以创建多个数据源,但本示例只需要一个数据源。

步骤:
  1. 打开 web 浏览器并转到空间数据服务器的 REST API 管理视图。其 URL 格式为:http://<服务器名称>/<空间数据服务器名称>/admin。

    在本示例中,空间数据服务器安装在服务器 web 应用程序上,空间数据服务器为 sdsi2s;因此,REST API 管理端点 URL 为 http://webapps/sdsi2s/admin

  2. 单击数据源链接,然后单击创建数据源链接以打开创建数据源 页面。

    创建数据源页面

  3. 提供所需信息:
    1. 输入新数据源的名称和描述。在本示例中,数据源名称为 cust_reqs
    2. Server 是数据库所在的 DBMS 实例的名称。对于本示例,SQL Server 实例名称为 abe\sspub
    3. Database 是包含要发布的数据的数据库名称。本示例中的数据库为 threers
    4. 提供在上一部分中创建的用户名 (webeditor) 和密码 (We4Svcs)。
    5. 输入正确信息后,单击创建数据源

设置 ArcGIS Online 帐户

在本示例中,服务将发布到 ArcGIS Online,而应用程序将在此进行创建。

使用 Esri 全球帐户登录 ArcGIS Online。您可以将现有 Esri 全球帐户注册到 ArcGIS Online,也可以创建 Esri 全球帐户,然后在相同的位置对其进行注册。转至 http://www.arcgis.com/home/,然后单击登录

如果已将 Esri 全球帐户注册到 ArcGIS Online,则此时无需登录。这将在工作流中发布服务后执行。

创建空间数据服务器的管理员连接

通过空间数据服务器的特定连接来发布数据。管理员连接可用于管理服务器和发布服务。

由于您可能还需要管理空间数据服务器,因此,应通过 ArcGIS for Desktop 创建与空间数据服务器的管理连接。

步骤:
  1. 启动 ArcMap,然后打开目录 窗口。
  2. 在目录树中展开 GIS 服务器节点。
  3. 双击添加 ArcGIS Server
  4. 选择管理 GIS 服务器,然后单击下一步
  5. 服务器 URL 文本框中,输入空间数据服务器的管理 URL。

    本示例中的 URL 为 http://webapps/sdsi2s/admin

  6. 服务器类型下拉列表中选择 Spatial Data Server
  7. 如果要使用此连接创建和保存服务定义,可选择服务定义文件在磁盘上的过渡位置。默认情况下,它们将过渡保存在本地计算机上的文件夹中。
  8. 单击完成创建连接。

    新连接已列出在 GIS 服务器节点下。

发布要素服务

您将发布两项服务:一项服务是可通过编辑来接受请求的服务,另一项服务是用来表示服务区的只读服务。要与其他用户共享您的服务,请从 ArcMap 连接到您的数据库、在 ArcMap 中创作两个单独的地图(其中一个用于可编辑的服务,另一个用于只读服务),然后发布这两个地图。

ArcGIS for Desktop 连接到数据库

与数据库建立连接,以便访问其中的数据。要与数据库建立连接,您必须在安装 ArcGIS 的计算机上安装数据库客户端。

对于该工作流,您需要正在使用的 SQL Server 数据库版本所支持的 SQL Server Native Client。从 Microsoft 获得该客户端,并将其安装在您的客户端计算机上。

安装了 SQL Server Native Client 后,您可以通过 ArcMap 与数据库建立连接。

通过 ArcMap 连接到您的数据库,以便将客户表添加到地图中。

步骤:
  1. 在目录树中,展开数据库连接节点。
  2. 双击添加数据库连接
  3. 数据库平台下拉列表中选择 SQL Server
  4. 实例文本框中输入 SQL Server 实例的名称 abe\sspub
  5. 数据库文本框中输入数据库名称 threers
  6. 类型下拉列表中选择数据库身份验证
  7. 用户名文本框中输入 webeditor
  8. 密码文本框中输入 We4Svcs
  9. 确保选中保存用户名和密码,然后单击确定

为可编辑服务创作地图

将客户表从数据库连接拖动到地图窗口,从而将其添加到 ArcMap 中。

如果 ArcMap 未检测到空间参考或合适的 ObjectID 列(非空整型列),系统将提示您提供该信息。

注注:

不能发布没有空间参考的数据。

客户表出现在 ArcMap 内容列表中后,使用要在该服务中显示的简单符号对要素进行符号化。有关如何更改符号系统的信息,请参阅 ArcGIS 帮助。

接下来,在地图文档中更改您希望在该服务中显示的属性所需的任何配置。例如,您可能需要设置可通过该服务显示的字段、可见字段的别名,还可能需要将一些字段设置为只读。在本示例中,您还需要为用户设置 HTML 弹出菜单,以提供处理其请求所需的信息。有关可能的属性列表,请参阅快速浏览:为空间数据服务器创作要素服务

缩放至服务要使用的初始范围。您需要确定初始范围最多返回您在发布服务时所设置的最大要素数目。默认情况下,该数目为 1000。保存您的地图。

发布可编辑的要素服务

地图准备就绪后,将其发布,以将您的数据作为要素服务共享。

步骤:
  1. 在 ArcMap 文档中,从主菜单中选择文件 > 共享为 > 服务
  2. 共享为服务 窗口中包含三个选项。
    • 要立即发布数据,可选择发布服务,然后单击下一步
    • 要保存服务定义文件以便日后发布,可选择保存服务定义文件,然后单击下一步
    • 要替换现有服务,可选择覆盖现有服务,然后单击下一步。请注意,在替换服务的情况下,必须首先停止原始服务。
  3. 从连接下拉列表中选择管理空间数据服务器。
  4. 服务名称文本框中输入 three_r_requests,然后单击继续
  5. 服务编辑器 中单击要素访问
  6. 取消选中删除更新,因为用户只能查询该服务以及向其中添加要素。
  7. 保持每次查询返回的最大要素数设置为 1000 不变。
  8. 单击共享

    将打开 ArcGIS Online 登录 对话框。

  9. 输入 Esri 全球帐户用户名和密码,并单击确定登录,然后关闭“登录”对话框。
  10. 服务编辑器 对话框的 ArcGIS Online 窗格中,选中合适的框,以使相应用户能够访问您的内容。
    • 如果目前只有您可以访问该服务,请选中我的内容
    • 如果您希望对 ArcGIS Online 具有访问权限的每个用户均能查看该服务,请选中任何人(公共)
    • 列出您所加入的所有组。如果您希望将所发布服务的访问权限授予其中任一组,请选中以下组中的成员,然后选中需要的所有组。

    可以选中多个选项。例如,您可能希望该服务成为您内容的一部分,并且希望将访问权限授予特定的 ArcGIS Online 组。

  11. 单击分析,以确保在发布前不存在任何要更正的错误或警告。

    必须更正错误,否则发布将失败。

  12. 如果要查看要素类在该服务中的显示效果,请单击预览
  13. 此时,您可以保存服务定义文件,以便日后发布。但是,在本工作流中,将发布该服务。
  14. 单击发布
  15. 完成发布后,单击确定关闭该对话框。

为只读服务创作地图

创建另一个用于发布只读服务的地图。

步骤:
  1. 在 ArcMap 中打开一个新地图:文件 > 新建
  2. 选择新建地图并单击确定
  3. 将 service_area 要素类拖动到地图上。
  4. 按照图层在服务中的所需显示效果对其进行符号化。

    使用“不填充服务区面”或将填充设置为透明。

  5. 设置可通过该服务显示的字段,以及这些字段的别名。
  6. 将地图文档保存在本地 IIS APPPOOL\DefaultAppPool 用户具有访问权限的共享目录中。

发布只读服务

发布第二个地图,使其用作 web 应用程序中的参考点。

步骤:
  1. 在 ArcMap 文档中,从主菜单中选择文件 > 共享为 > 服务
  2. 共享为服务 窗口中包含三个选项。
    • 要立即发布数据,可选择发布服务,然后单击下一步
    • 要保存服务定义文件以便日后发布,可选择保存服务定义文件,然后单击下一步
    • 要替换现有服务,可选择覆盖现有服务,然后单击下一步。请注意,在替换服务的情况下,必须首先停止原始服务。
  3. 从连接下拉列表中选择管理空间数据服务器。
  4. 服务名称文本框中输入 service_area,然后单击继续
  5. 服务编辑器 中单击要素访问
  6. URL 文本框中输入公共服务器的 URL。

    您必须将可编辑的要素服务发布到 ArcGIS Online 的公共服务器上,以便对其进行访问。

  7. 取消选中添加删除更新,因为用户只能查询该服务。
  8. 单击 ArcGIS Online

    将打开 ArcGIS Online 登录对话框。

  9. 输入 Esri 全球帐户用户名和密码,并单击确定登录,然后关闭“登录”对话框。
  10. 服务编辑器 对话框的 ArcGIS Online 窗格中,选中合适的框,以使相应用户能够访问您的内容。
    • 如果目前只有您可以访问该服务,请选中我的内容
    • 如果您希望对 ArcGIS Online 具有访问权限的每个用户均能查看该服务,请选中任何人(公共)
    • 列出您所加入的所有组。如果您希望将所发布服务的访问权限授予其中任一组,请选中以下组中的成员,然后选中需要的所有组。

    可以选中多个选项。例如,您可能希望该服务成为您内容的一部分,并且希望将访问权限授予特定的 ArcGIS Online 组。

  11. 单击分析,以确保在发布前不存在任何要更正的错误或警告。

    必须更正错误,否则发布将失败。

  12. 如果要查看要素类在该服务中的显示效果,请单击预览
  13. 此时,您可以保存服务定义文件,以便日后发布。但是,在本工作流中,将发布该服务。
  14. 单击发布
  15. 完成发布后,单击确定关闭该对话框。

查看服务

您可以通过 ArcGIS 空间数据服务目录查看服务的相关信息。由于服务已发布到 ArcGIS Online,因此您可以在此查看地图上的服务。

通过 ArcGIS 空间数据服务目录访问该服务

ArcGIS 空间数据服务目录将列出发布到特定空间数据服务器的所有服务。在此,您可以将服务定义导出为 JSON 文件、编写 SQL 查询来选择要素或将其插入到要素类中,或者在 ArcGIS.com 打开您的服务。

ArcGIS 空间数据服务目录的 URL 为 http://<服务器名称>/<空间数据服务器名称>/rest/services。因此,本示例中的 URL 为 http://webapps/sdsi2s/rest/services。您将看到两项服务同时列出。

使用 ArcGIS Online

由于您已将要素类发布到空间数据服务器,因此可通过 ArcGIS Online 查看它们。

步骤:
  1. 打开 web 浏览器并转至 ArcGIS Online 网站:http://www.arcgis.com/home/index.html
  2. 单击登录
  3. 输入 Esri 全球帐户用户名和密码,然后单击登录
  4. 单击我的内容
  5. 首先添加 three_r_requests 服务。
    1. 单击添加项目
    2. 该项目是下拉列表中选择在 Web 上
    3. 输入该服务的 URL。

      本示例中的 URL 为 http://webapps/sdsi2s/rest/services/three_r_requests.svc

    4. 标题文本框中输入服务的标题。
    5. 标签文本框中输入用于识别服务的标签。
    6. 单击添加项目
  6. 按照上述步骤将 service_area 服务添加到您的内容中。

创建 web 应用程序

首先,在 ArcGIS.com 上创建一个地图,其中包含您的服务和该区域街道的底图。接下来,使用 ArcGIS.com 中的应用程序模板来创建 web 应用程序。

在 ArcGIS.com 上创建地图

将这两项服务同时添加到 ArcGIS.com 的底图中,然后保存地图以供应用程序使用。

步骤:
  1. 在 ArcGIS.com 的我的内容部分,单击只读服务。
  2. 单击打开以打开显示该服务中的数据的地图。
  3. 单击添加,然后选择从 Web 添加图层以添加第二项服务。

    将打开从 Web 添加图层 对话框。

  4. URL 文本框中输入可编辑服务的 URL,然后单击添加图层
  5. 单击底图,并选择其中一个显示街道名称的图层。
  6. 必要时调整地图的范围,使其只覆盖这两项服务的范围。
  7. 单击保存保存您的地图。
    1. 输入地图的标题、标签和摘要。
    2. 选择用于保存地图的文件夹。
    3. 单击保存地图
  8. 公开共享您的地图或者与特定组共享地图。
  9. 记下地图的 ID,以便在创建 web 应用程序时使用。

使用模板来创建 web 应用程序

由于应用程序需要供用户编辑,因此您将使用“编辑 web 应用程序”模板。

步骤:
  1. 下载编辑 web 应用程序模板
  2. 将下载的 zip 文件放置在 IIS 服务器的 inetpub\wwwroot 文件夹中。
  3. 提取文件。
  4. 按照 readme.html 文件中的说明来设置应用程序。
9/15/2013