基于 ArcGIS 开发

与其他任何开发一样,都应该遵循一定的步骤。
  1.确定要解决的问题——如“你的开发工作要解决的问题是什么?”。
  2.确定要开发的程序类型(独立应用程序、Add-in插件或ArcObjects 扩展的动态链接库 等)。ArcGIS 具有各种扩展点,在开始编写代码之前,您需要知道您将针对的是这些扩展点中的哪一个。
  3.根据您要开发的程序的功能,找到正确的 ArcObjects。ArcObjects 是为您的程序提供所有 GIS 功能的组件。 ArcObject 有很多,但它们被分组到各功能区域中。某些程序要求您使用 ArcObjects 的多个功能区域,可将每一个功能区域都视为程序开发的子任务,并一次只专注于一项任务。
  4. 开发您的程序:
    (1)创建一个Visual Studio项目。
    (2)引用步骤 3 中确定的所需 ArcObjects 程序集。
    (3)创建程序的框架,通过创建独立应用程序、“设置Add-in和关联的 .esriaddinx 文件”、或实现所需的 ArcObjects 接口。若使用 Visual Studio ,它的模板和向导将帮助您创建程序的基础代码。
    (4)添加代码,包括通过ArcObjects的GIS功能。您需要授权您的应用程序,以实现对 ArcObjects 的访问。
    (5)将源代码编译为独立应用程序的可执行文件 (EXE)、Add-in的 .esriaddin ,或 ArcObjects 扩展的动态链接库 (DLL)。
  5. 测试您的程序。验证您的应用程序是否按预期工作,并确保您正确处理任何常见的错误。
  6.部署您的定制。

确定要开发的程序类型

  作为开发人员,您有几个开发入口点。一旦您知道您的开发将要解决的问题,您就可以确定要构建的程序类型。

不需要 .NET ArcObjects 的编程
  1.如果要在工具栏上创建工具集,或更改 ArcGIS Desktop (ArcMap、ArcCatalog、ArcGlobe 或 ArcScene)中的工具和可停靠窗口的布局,您可以配置 UI 以满足您的要求。为此,您可以在应用程序中通过拖放而实现。
  2.如果您要运行一组地理处理工具,或要生成一系列地图,请考虑使用 Python 脚本。

使用 .NET ArcObjects 的编程
  1.如果您的用户想要一个专注于特定任务或工作流的应用程序,您可以创建一个独立的应用程序。该应用程序可以执行以下操作:
    (1)使用 ArcGIS Engine 控件来提供交互式体验,其外观与 ArcGIS Desktop 应用程序中的可用外观相似,或者具有完全不同的外观,即使使用 WPF 及其控件.
    (2)创建具有嵌入式 GIS 功能的图形用户界面 (GUI) 应用程序。
    (3)在无需 GUI 组件的情况下,提供数据处理或分析。

Add-in 插件。虽然它们易于构建和共享,但 Add-in 插件的功能有限,无法用于访问 Esri 的所有扩展点。Add-in 插件仅支持以下扩展点:按钮和工具、组合框、菜单和上下文菜单、Multi-items、工具栏、工具面板、可停靠窗口、应用扩展、编辑器扩展。

  尽管易于构建和共享,但 Add-in 插件具有它的局限性。它们仅提供对前面列表中的扩展点的访问。

自定义COM组件来扩展 ArcObjects。由于共享 Add-in 插件不需要管理员权限或注册,因此如果您有需要注册或管理干预的外部依赖项(库、程序集、服务),请扩展 ArcObjects。

  4.如果您使用 ArcGIS for Server 创建 GIS Web 应用程序,Web ADF(应用程序开发人员框架 ) 将提供 Web 控件和类,来处理多个数据源。但使用 .NET Server ADF 进行开发,被记录在 .NET Server  ADF SDK 中,不在我们本次讨论的范围。
  5.虽然 ArcGIS for Server 包括许多高度灵活的功能服务,但您可以通过直接使用 ArcObjects 来访问其他功能;或者您可以通过【“将功能封装在服务器端组件中”和“公开粗粒度方法供客户端应用程序调用”】来优化客户端应用程序的性能。SOE