使用 SDK 和 API 扩展 ArcGIS

ArcGIS 系统通常在现有易于理解的软件组件的稳定基础上构建。 这些组件可以通过多种方式进行部署,配置为支持工作流程和要求,对于许多系统,现有应用程序、服务、工具和功能足以。 在其他情况下,可能需要自定义软件或工作流才能实现要求或设计标准,ArcGIS 平台提供了各种软件开发工具包 (SDK)、脚本和自动化引擎以及应用程序开发接口 (API),可帮助用户实现这些目标。 Esri 开发人员站点提供了有关其中一些 API 和 SDK 的全面文档和指南,以及其他 REST API 和基础 ArcGIS 组件功能的文档。

一些工程和团队可能在开始设计过程时清楚地了解软件开发或自定义的作用,而其他设计过程可能会通过审查需求或设计过程中的后续步骤来强调自定义的必要性。 在任一情况中,明确的方法对于决定如何扩展 ArcGIS 以及在何处扩展 ArcGIS 都非常重要。

应用程序自定义的决策标准

将自定义软件开发添加到工程的决定具有一系列影响、优势和注意事项。 建议将在 ArcGIS 系统中开发的作用视为一个具有重要选项的范围,即从主要的开箱即用系统(通过弹出窗口配置、Arcade 脚本或其他方法进行简单配置),到支持 Python 的数据移动或地理处理工作流,一直到支持将 Arcade、CSS 和 HTML 添加到界面的可扩展低代码应用程序,最终生成完全定制的系统,具有精心设计的前端、自定义 Web 服务以及重要的数据和流程自动化。

可通过多种方式细分该范围,但一种方式是通过三种主要方法对其进行查看:

  • 配置应用程序以满足您的业务需求。 ArcGIS 提供了一组可配置应用程序,来支持从基本到高级的工作流,并提供基于浏览器的简单配置体验。 使用这些应用程序可尽可能减少工作量和持续成本,但可能会受到支持的配置的限制。 此类别中的应用程序包括 Instant Apps、Story Maps、Dashboards、Field Maps 或 Survey 123。
  • 使用低代码应用程序构建器。 Esri 提供了各种包含低代码体验的应用程序构建器,包括 ArcGIS Experience Builder、StoryMaps、Dashboards、ArcGIS Hub、Enterprise Sites 和 ArcGIS Instant Apps。 这些应用程序全部支持配置一定程度的自定义 HTML 和 CSS,以及 Arcade 的不同实施或配置文件,并且可用于构建精心定制、与品牌相符应用程序,这些应用程序具有完全自定义应用程序的外观和感觉,同时保留快速更改或调整功能的选项。 Experience Builder 还支持创建自定义小组件,这些小组件可以开发并可用于多个不同的应用程序。
  • 使用 ArcGIS SDK 完全自定义应用程序。 Esri 为各种编程环境和语言构建 SDK,每种 SDK 都为构建包含 ArcGIS 图层、UI 交互、安全身份验证和复杂制图功能的地图和数据驱动应用程序提供强大的支持。 由于您不必亲自对每个特定部分进行编码,因此您可以构建以业务为中心的应用程序,以利用组织中的可用 ArcGIS 功能,从而减少应用程序开发和维护的开销。 Esri 开发人员站点提供了有关可供选择的 SDK 的全面信息,以及常见工作流、功能描述和示例代码。 Esri 还提供了一系列应用程序组件,以通过标准化 UI 方法简化 Web 开发。

从配置到全面开发,在这个范围内没有单一的最佳选择,决策应基于团队的开发能力、组织对定制的架构理念,以及对在此领域做出的任何决策的长期影响的理解。

常见的软件开发动机和因素

由于定制和软件开发选项范围广泛,因此还需要了解追求这些选项之一的一些动机,每个选项都可能导致关于哪种定制或扩展方法可能合适的不同决策标准集。

  • 功能和集成动机主要与现有应用程序或工作流中缺少特定功能有关,或者需要支持与不存在现有应用程序的另一个系统的集成。 另一个动机是希望将多组功能整合到一个统一的界面中。
  • 性能和可扩展性。 如果现有服务、界面或工作流的性能不能满足您的要求,则自定义选项可能会引入新选项以达到所需的服务级别,或者为流程提供捷径,从而节省大量时间并提高用户满意度。
  • 设计。 如果应用程序的要求超出现有 ArcGIS 应用程序的样式和主题产品所支持的范围,则自定义应用程序可能能够实现组织的特定界面或设计目标。 通常,可基于 Esri Calcite Design System 实现设计卓越且可用的界面。
  • 受众和用户体验。 可用性是大多数应用程序设计工作的关键成功标准,关键一步是了解不同用户组对功能的不同需求。 引导式工作流甚至可以帮助经验丰富的用户尽快找到从打开应用程序到提高工作效率的方法。
  • 组织文化和能力。 您的组织可能对应用程序设计过程中使用开发的某些方式有偏好或倾向。 领导层、工程管理和技术团队可能具有偏好、肌肉记忆或相关经验,可以做出有关自定义选项的决策,并可能利用这些来为新机会的决策提供信息。 仔细考虑组织进行自定义的能力、该工作的维护以及对大量配置的应用程序的重要维护,将确保做出有目的的选择,为您的应用程序未来取得成功做好准备。
  • 成本。 所有应用程序构建过程都需要成本,重要的是不要默认自定义的成本更高 – 契合目标的应用程序可能比配置的应用程序具有更长、更成功的生命周期,具体取决于配置的应用程序生命周期、所需功能和预期更改。 成本注意事项应考虑初始构建成本,以及持续维护和决策带来的任何风险。
  • 生命周期。 应用程序不应设计为永久使用 – 考虑其他选项或方法的正常替换间隔可确保不会忽略新的应用程序选项,并且当可能存在更好的选项时,不允许现有应用程序无限期地继续运行。 在某些情况下,更新自定义应用程序就像引进 SDK 新版本一样简单,但其他更新可能更重要或可能导致投资加大,具体取决于初始应用程序开发的时间安排和用于构建它的 SDK 的生命周期。

使用 SDK 和 API 的最佳实践

如果软件开发将在创建应用程序或构建系统时发挥作用,一些最佳实践可以应用于大多数场景:

  • 使用团队熟悉的工具 – 您的组织或协作者团队可能具有特定语言、软件开发方法或应用程序构建方法的使用经验,在大多数场景中,建议遵循这些现有模式。 这通过依赖现有技能、从以前的经验中学习来提高效率,而不是仅仅为了新颖性而要求团队采用新技术。
  • 保持采用最新版本 - 与基础软件组件一样,ArcGIS SDK 和 API 会定期更新最新版本,建议采用所有这些产品的最新版本,因为它们内置了新功能并增强安全性和提高性能。 对于每个版本,Esri 都会仔细记录新功能和任何重大改变,以帮助开发人员在尽可能减少中断的情况下继续使用最新版本。
  • 在开发时牢记架构支柱 - 本节中描述的架构支柱对于软件开发驱动型系统和更现成的系统具有同等重要性。 在开发新的应用程序或功能时,请考虑安全性、性能、可扩展性和可观察性的重要性,确保团队可以在其预期生命周期内支持和有效操作生成的应用程序。

摘要

建议通过自定义现有界面或使用 ArcGIS Maps SDK 构建新应用程序来扩展 ArcGIS 来实现上述某些目标。 在企业系统的设计过程中,仔细考虑扩展和自定义与当前解决方案的相关性可能会对系统的未来交付和成本产生重大影响。 如有疑问,请考虑组织能力和准备情况,即现有经验或自定义解决方案(或最常见的是两者的组合)是否更合适。

Top