自定义数据源

自定义数据源是 ArcGIS Enterprise 的一项功能,支持开发人员根据 ArcGIS 本机不支持的数据源构建并发布 web 服务。 通过自定义数据源访问的数据将显示为要素服务 REST 端点,并可供 web 客户端、桌面应用程序、外业应用程序或任何其他 REST 客户端使用。 在以下一些情况下,自定义数据源可能是一个不错的选择:

  • 您希望根据专有格式或端点访问 ArcGIS 应用程序中的数据
  • 您不希望将数据源注册到 ArcGIS Enterprise
  • 您想要访问由第三方维护的数据
  • 数据存储在远程位置中并且必须以实时数据源的形式流式传输

自定义数据源使用 ArcGIS Enterprise SDK 随附的 cdf 命令行工具。 可通过该工具使用 JavaScript 创建和测试自定义数据提供程序以获取数据源中的数据。 该工具还会将代码打包到自定义数据包文件中,以用于将数据提供程序注册到 ArcGIS Server。 在进行注册后,可以将数据以引用数据提供商的要素服务形式提供给 ArcGIS 客户端。

任何客户端都可以将自定义数据源用作 HTTP REST 服务,并对其进行专门设计以支持现有 ArcGIS 客户端,用户可以与来自自定义数据源的数据进行交互、创建弹出窗口,甚至提交要素编辑内容,而无需识别该服务是基于外部数据源,还是基于第三方数据源。

ArcGIS 中的集成模式

只能在 ArcGIS Enterprise 中创建自定义数据源。 可用于 ArcGIS Pro 以及 ArcGIS Enterprise 和 ArcGIS Online 中的 web 应用程序。

功能 ArcGIS Online ArcGIS Enterprise ArcGIS Location Platform ArcGIS Pro
自定义数据源 N/A

完全支持 部分支持


最佳做法

当开发自定义数据源集成时,请参考以下最佳做法:

  • 谨慎管理较大的数据查询:分页、较大的查询大小以及序列化或转换的等待时间,如果所查询的数据集过大,都可能导致自定义数据源的性能下降。 如果远程 API 或数据源支持索引、基于属性的过滤器或空间过滤器,则可以在自定义数据源中编写逻辑以将传入的 fFeature 图层请求参数(例如范围)转换为对后端的优化请求。

  • 虽然自定义数据源实现了大多数 ArcGIS 应用程序都可以使用的要素服务端点,但仍需谨慎测试系统的预期应用程序:有些应用程序会发送复杂的查询或者期望要素服务的附加功能,并且可能无法与自定义数据源完美配合。 请查阅 REST API 文档,并与 Esri 合作,以了解特定于您的工作流、自定义数据源和提供商的任何限制。

  • 仅在源中包含所需属性。 虽然远程 API 或数据源可能提供大量属性,但为了提供最佳性能,只需在对 ArcGIS 客户端的响应中包含所需属性即可。

  • 尽可能使用现有 NodeJS 库。 如果可以通过熟知的 NodeJS 库或模块(例如通过 npm 访问的模块)访问远程 API 或服务,请使用这些模块并保持其处于最新状态,因为其通常会为该远程系统实现最新的安全和身份验证标准。 这些模块可能由提供商开发(例如 Esri 维护的 arcgis-rest-js 模块),也可能由开源社区维护。

  • 自定义数据源要求每个记录都具有基于整数的标识符。 如果可能,请在后端方案中包含该标识符或者生成该标识符,以避免出现需要使用 CDF 以生成 ID 的情况,在使用某些 ArcGIS 应用程序时,这可能会导致出现不一致的情况。

Top