面向开发人员的 ArcGIS 架构可被视为一系列通过服务模型连接的各种类型客户端(桌面、移动设备、Web 浏览器等等)和服务器。ArcGIS 的开发技术均基于这种客户端-服务器模式。
![ArcGIS 系统 ArcGIS 系统](GUID-65898A75-C9D1-4CEC-B233-05E21F9B8937-web.png)
ArcGIS 包含一组丰富的客户端(即服务客户端),被设计用于从 Web 平台到移动平台乃至所有的桌面工作站的各种平台。而且,还包含一组用于提供 GIS 服务的服务器。这些服务器可作为云环境中的托管服务、作为企业级服务器或本地 GIS 运行时而运行。此外,Desktop GIS 还可访问和使用本地网络中的 GIS 文件。
ArcGIS 客户端 API
ArcGIS 包括许多面向桌面、Web 和移动环境的客户端应用程序,通过这些客户端应用程序可以访问和应用托管在云中或预置在企业服务器中的 GIS 数据和服务。此外,针对于每种类型的客户端都提供了对应的开发者 API 以实现自定义应用程序和工作流。本文介绍了许多开发选项。
ArcGIS Runtime 本地应用程序
ArcGIS 提供了由开发人员使用的运行时环境,在此环境中他们可以编写高性能、易于部署的本地应用程序,这些应用程序将利用通过 ArcGIS 进行管理和共享的地图和地理信息。我们将此运行时环境称为 ArcGIS Runtime。
您可针对各种开发环境(包括桌面和移动设备)构建 ArcGIS Runtime 应用程序。它们共享一个通用对象模型并通过两种基本方式访问和使用地理信息:
- 通过连接到并使用在线地图以及支持 GIS 服务
- 通过部署在本地设备上使用的 GIS 包(数据与您的应用程序位于同一设备上)以及通过使用本地 GIS 功能
包是通过 ArcGIS Runtime 应用程序分发数据的有效方式。因为包是磁盘上的单个文件,它封装了您想要共享的所有集成 GIS 功能。另外,在与 Runtime 应用程序配合使用的设备上准备数据也是很方便的。
ArcGIS 支持以下各项的独立本地运行时环境:
有关如何使用包的示例,请参阅 Runtime WPF 文档主题 ArcGIS Runtime 使用的包。
ArcGIS Web 应用程序
使用 ArcGIS,开发人员可以访问和使用一系列面向 JavaScript、Adobe Flex 和 Microsoft Silverlight 的 Web API 来构建与 ArcGIS 服务配合使用的自定义 Web 应用程序。这些 Web 应用程序框架将连接到并使用通过 ArcGIS Server、ArcGIS Online 以及 Web 上的开放式用户制图服务发布的地图服务和其他相关的 GIS 服务。这些 API 使用一种开放的、基于 REST 的行业标准架构,使得 ArcGIS 内容和服务既可以作为 ArcGIS 不可或缺的一部分使用,也可以在 ArcGIS 外部使用。
ArcGIS for SharePoint
借助 ArcGIS 的 SharePoint 站点构建器,可以在 Microsoft SharePoint 网站内使用 ArcGIS 内容和服务创建和部署有用的 GIS 应用程序。有关详细信息,请访问 ArcGIS for SharePoint 网页。
自定义和扩展 ArcGIS Desktop
您可以通过以下方式自定义和扩展 ArcGIS Desktop:
- 配置用户界面以自定义 ArcGIS Desktop 中的菜单、工具和按钮
- 使用地理处理和 Python 自动执行数据处理和多个 GIS 工作流
- 使用 Python、.NET 和 Java 编写加载项以用于 Desktop
- 使用综合性 ArcObjects 库编写自定义软件和扩展模块
使用 ArcObjects 和 ArcGIS Engine
面向 .NET、Java 和 C++ 的 ArcGIS Engine 和 ArcObjects 开发者 API 可用于通过 ArcObjects 组件库创建独立的自定义应用程序以及 ArcGIS Desktop 扩展模块。
有关详细信息,请访问以下 ArcGIS Engine 网页:
ArcGIS 服务
ArcGIS Server 和 ArcGIS Online 在基于服务器的架构上部署 GIS 功能。GIS 地图、功能、影像、地理处理模型、定位器和数据库都可以部署为 Web 服务,并且实际上可以由任何客户端访问以供 GIS 专业人员和其他用户使用。可以使用成排的计算机对 GIS 服务进行部署以及规模调整,这既可以在组织的站点上实施,也可以在 Web 上的云服务器站点中实施。
用户使用 ArcGIS Desktop 创建重要的 GIS 地图和信息,并使用 ArcGIS Server 和 ArcGIS Online 将其发布为 Web 服务。这样,ArcGIS 可提供对信息的广泛访问并能够调整 GIS 的功能以适合任何配置和情况。
支持的 Web 服务 API 包括 REST、SOAP 和 OGC 协议(如 WMS、WFS 和 WCS)。
ArcGIS 提供了一种开放式 Web API,用于共享遵循 RESTful 设计模式的地图和 GIS 服务,以最大化采用和使用的机会。这使得各类开发人员和应用程序构建人员都可以将 ArcGIS 服务与来自许多不同数据源的任何其他 Web 信息结合并融合在一起。此外,它还使用户能够访问在 GIS 环境中所创建的极为丰富的地理知识。
有关详细信息,请参阅以下内容:
其他主要 API
ArcGIS 还包括许多用于处理地理信息的其他 API。其中包括:
- Python - 一个由科学计算社区和许多开源开发人员使用的开源脚本模型。Python 在 ArcGIS 中用作使用 ArcPy 进行地理处理和分析的脚本语言,ArcPy 是 ArcGIS 的原生 Python 库。要了解详细信息,请参阅什么是 ArcPy?
- SQL - 使用 ArcGIS,在各种类型的关系数据库(包括 Oracle、SQL Server、IBM DB2、PostgreSQL 和 etezza)中对大型多用户地理数据库进行管理和存储。提供了具有特定地理数据库功能以及空间类型支持的 SQL API,将其作为每个 DBMS 的 ArcGIS 数据库支持的一部分。