Features and graphics(要素和图形)

在ArcGIS Runtime SDK中,要素和图形表示地图上的真实对象。每个要素和图形都有一个表示其形状和位置的几何图形,以及进一步描述所表示对象的其他属性。

Feature services(要素服务)

要素服务提供对要素的在线访问,并可由ArcGIS Enterprise或ArcGIS Online托管。要素服务包含一个或多个要素集合。如果您访问要素服务的REST服务目录页面,您将在“Layer”标题下看到它包含的要素集合,如下图所示。Features of different geometry types (point, line, and polygon, in other words) cannot exist in the same collection, so it's common to see features organized according to geometry type in addition to theme.不同几何类型(点,线和多边形,换句话说)的特征不能存在于同一个集合中,通常会根据几何类型组织将特征加入到主题中。

Feature tables(要素表)

ArcGIS Runtime应用程序中的功能存储在要素表中,其中有许多类型。在线要素来自 server feature table,本地 geodatabse 中的 feature 来自 geodatabase feature table点击查看创建离线图层 Create an offline layer。存储在地图或门户网站项中的静态要素作为要素集的一部分存储在要素集合表( feature collection table )中。

由于要素服务或本地地理数据库可以包含多组要素(换句话说,表格),因此您可能需要在ArcGIS Runtime应用程序中创建许多要素表来表示所需的所有数据集。

Types of features(要素类型)

不同的要素表表示不同的要素对象。直接从FeatureTable基类继承的要素表将返回Feature对象类型。从ArcGISFeatureTable继承的要素表具有附加功能,例如附件,这些功能会返回ArcGISFeature对象。

为了提高效率,ArcGISFeature对象实现了可加载模式(loadable pattern)。在以渲染和查询目的提取要素时,会返回一组最少的必填字段,例如标识符,几何图形,用于符号化的字段等。当您需要所有可用字段时,只需加载该要素即可。

Note:查询功能时,您可以选择将结果作为加载功能返回,以便所有字段立即可用。

Feature layers(要素图层)

要素图层在需要时,可以使用包含 feature table 的 feature layer 显示在地图上。
不同的请求模式,有不同的作用。例如缓存要素会影响编辑功能。点击了解请求模式(layers and tables)。

警告
feature layer 也能直接显示数据,但是是只读的

Graphic的获取

Graphics 可以从各种操作的结果中创建,例如查询,识别,地理处理,地理编码或路由。也可以从外部数据源创建,但如果要将数据保存在地图中,则必须使用要素。还可以通过点击或者触摸地图创建的结果。

何时使用要素(when to use features)

持久性是要素的内置特征。功能持久存储在数据存储中,例如数据库,服务,映射或门户项目。当此数据存储可供多个应用和用户使用时,所有人都可以使用一组通用数据。多人共享要素数据是常用的功能。

Graphic 存在于应用内存中,只能够在应用程序存活时使用。应用程序在使用期间创建图形,并且仅在该期间可用。

何时使用图形(when to use Graphics)

应用程序在需要的时候创建 graphics,并且不需要像要素存储在数据存储中。graphic 是一种解决暂时展示一些特别的事物的方案。例如:使用 graphics 展示一些任务的结果。

提示: 与 10.2.9 的 SDK 不同,添加 graphic 使用 GraphicsOverlay 而不是使用 GraphicsLayer

几种常用的方式:

  • 添加一个 text 在 地图上
  • 使用多边形图形突出展示地图的一部分
  • 显示空间分析的结果,例如围绕要素创建的缓冲区多边形
  • 显示两个位置之间的路线
  • 显示app用户通过与地图的交互绘制的几何图形
  • 动画快速更改的数据项,例如移动对象

有关使用图形的更多信息,请参阅向图形叠加添加图形和文本(Add graphics and text to graphics overlays)。有关使用图形叠加层的更多信息,请参阅向应用添加图形叠加层( Add graphics overlays to your app)。

推荐阅读更多精彩内容