### ArcGIS Engine 操作说明详解
#### 一、ArcGIS Engine 概览
**ArcGIS Engine** 是一种专为开发自定义地理信息系统 (GIS) 应用程序设计的产品。它包含了大部分 ArcObjects 和 ArcGIS Engine Controls,使得开发者能够构建具备地图显示、数据编辑等多种GIS功能的应用。
- **Engine Controls**:这些是能够被添加到窗体中的组件,用于展示地图和其他GIS功能。目前提供了8种Controls以及超过200个commands,包括导航、编辑、添加数据等功能。
- **操作系统支持**:新增了对 Windows 7 的支持,并且对于 Windows XP 要求至少安装 Service Pack 3。
- **开发环境**:支持 Visual Studio 2008 SP1 和 Visual Studio 2010,同时需要 .NET Framework 3.5 SP1 或更高版本。需要注意的是,ArcGIS Engine 仍然是一个32位应用程序,因此在配置开发环境时需选择 x86 目标平台。
- **产品需求**:为了开发基于 ArcGIS Engine 的应用程序,需要安装 ArcGIS Engine Runtime、ArcObjects .NET SDK 以及 ArcGIS Engine Developer Kit License。
#### 二、ArcGIS Engine 10 开发环境
ArcGIS Engine 10 的开发环境有一些特殊要求:
- **.NET Framework 4.0 的兼容性问题**:如果使用 .NET Framework 4.0,则需要将所有 ESRI 类库引用的 EmbedInteropTypes 设置为 False。
- **64位操作系统下的 VS2010 配置**:在 64位操作系统上使用 Visual Studio 2010 时,可能会遇到一些问题,如 KB37879。
#### 三、许可授权与运行时绑定
**许可分类** 包括运行时单机许可 (Single Use)、运行时浮动许可 (Concurrent Use) 和运行时 + 开发包单机许可。在线授权机制将许可与操作系统绑定,每年提供四次解除授权的机会。
**运行时绑定** 是一个关键步骤,确保 ArcGIS Engine 应用程序能够在指定的运行时环境中运行。通过调用 `ESRI.ArcGIS.RuntimeManager.Bind()` 方法进行绑定,并且可以通过 `RuntimeManager.InstalledRuntimes` 和 `RuntimeManager.ActiveRuntime` 获取已安装的运行时列表和当前已绑定的运行时。
#### 四、ArcGIS Engine 10 新功能
- **Basemap Layers**:这一功能引入了一个高性能的多线程显示引擎,显著提升了地图的显示速度和响应时间。尽管 Basemap 中的图层具有一些限制,比如不能修改图层属性,但对于大多数应用场景来说,这种优化带来的性能提升是非常有价值的。
- **Query Layer**:允许使用 SQL 语句获取数据,支持空间和非空间查询。这一功能增强了数据检索的能力,使得开发者能够更灵活地处理地理数据。
- **Background Geoprocessing**:此功能允许在独立进程中执行 Geoprocessing 工具,从而在执行过程中保持用户界面的响应。这对于需要长时间运行的地理处理任务尤其有用。
#### 五、示例与实践
- **Basemap Layer DEMO**:演示如何测试硬件加速支持以及如何启用硬件加速,进一步提高地图显示性能。
- **Query Layer DEMO**:展示了如何使用 SQL 查询获取数据,并进行空间及非空间查询。
- **Background Geoprocessing DEMO**:通过创建一个队列来管理待执行的 Geoprocessing 工具,实现异步处理,保证应用的流畅运行。
### 总结
ArcGIS Engine 作为一种强大的 GIS 开发工具,不仅提供了丰富的功能,还具有较低的学习曲线,非常适合初学者入门。通过掌握上述介绍的关键概念和技术要点,开发者可以快速构建功能丰富且性能优异的 GIS 应用程序。