在SDK中,一项功能是一种抽象的geodatabase features (AGSFeature),它提供一种协议,用于定义可驻留在本地地理数据库(AGSGDBFeature)或内存(AGSGraphic)中的功能。由于在此基类上定义了几何和属性属性,因此 geodatabase features 和graphics在地图上显示时无法区分。那么,geodatabase features和graphics有什么区别?

最大的区别是geodatabase features要素存储在设备上的数据集中,然而graphics存储在内存中。因此,虽然地理数据库( geodatabase features)功能可能由在线服务或本地地理数据库(geodatabase)提供,但这些功能全部物理存储在磁盘上。另一方面,Graphics总是存储在客户端的内存中。他们生活在一个图形层,并且必须在运行时以编程方式实例化。

Note: 尽管术语“feature”也可以指代图形(graphic),但它最常用于指代诸如地理数据库特征( geodatabase features)之类的东西,这意味着存储在数据库中的特征。图形通常被称为“graphics”,但“graphic feature”会更精确。

Geodatabase features…

  • Have geometry 几何图形
  • Have attributes stored in a table 将属性存储在表中
  • Are stored on disk 存储到磁盘
  • Are displayed through an AGSFeatureTableLayer 将属性存储在一组键/值对中
  • Are symbolized according to the renderer defined for the feature service or the feature table layer that contains them
  • Can be selected via the feature table layer

Graphics…

  • Have geometry
  • Have attributes stored in a collection of key/value pairs
  • Are stored in memory
  • Are displayed through a AGSGraphicsLayer
  • Are symbolized individually or according to the renderer applied to the graphics layer that contains them
  • Can be selected via the graphics layer
  • Some display properties can be defined by the graphic, such as visibility and draw order

When to use geodatabase features

由于geodatabase功能存储在数据库中,因此可以将它们用于向应用的所有用户以及用户会话之间显示一组通用数据。 另一方面,Graphics是在运行时在客户端应用程序中创建的,因此只能用于单个用户的会话(除非添加逻辑以在会话之间保持图形,如序列化)。 地理数据库功能可以定义与要表示的数据一致的几何类型和属性模式。

考虑到这些差异,地理数据库功能的最常见用途可能是在多个用户之间共享数据。 创建包含要素的数据集并指定要包含的几何类型和属性后,可以将它们作为要素服务的一部分进行发布。 要素服务中的图层可以显示在地图中,以各种方式进行符号化,并使用属性,空间或时间标准进行查询。 运行时SDK中提供的丰富的编辑工具还可以在您的应用程序中公开编辑功能,包括控制编辑类型和编辑类型的功能。

When to use graphics

图形是在运行时以编程方式创建的,不需要物理存储。 这使得它们非常适合用于显示特定于当前用户与应用程序的会话的内容,或仅显示临时显示的内容。

图形通常用于执行如下操作:

  • 显示空间分析的结果,例如输入要素周围的缓冲区多边形
  • 突出显示地图中的选择
  • 添加用户交互绘制的几何图形
  • 为快速变化的数据提供动画(如GPS位置或移动对象)
  • 在地图上显示文字

note: 在版本10.2.3中,AGSFeatureLayer使用图形来显示,交互和编辑由在线要素服务提供的功能。 我们建议您在任何新开发中使用AGSFeatureTableLayer。