第四章 Features 和 Selections
概述
Selections 和 Features 对象的方法使您得以“标记”或选择符合特定条件的图元。地图上表示纽约市的点就是一个 Feature 对象的示例。假设您需要查找所有在 Sheep’s Head Bay, Brooklyn 周围 5 英里内的潜在客户。一旦创建此数据集合,就可以通过收集的数据来完成一组操作,如打印数据、取平均值、计算有多少符合条件的数据、并将它们保存到文件中,或者执行其它任务。在本章中将详细介绍图元和选择。
第一节 基本概念
什么是地图图元?
地图图元是地图上的地理对象,例如点、线或区域。例如,在美国地图中区域表示州、线表示公路、点表示城市。在 MapX 中,地图图元表示为 Feature 对象。
什么是 Features 集合?
在 MapX 中,组成地图的不同图层中的每个图层通常具有相同类型的图元。例如,“US States”图层使用区域图元表示每个州,“US Highways”图层使用线图元表示主要的美国公路,“US Capitols”图层使用点图元表示每个州的首府城市。在 MapX 中,地图图层中的所有图元及其所有子集表示为 Features 集合。许多 Layer 对象方法都返回图层的 Features 集合。
一般说来在地图上不突出显示 Features 集合中的图元。要想突出显示,那么使用 Selection 集合。
什么是 Selection 集合?
和 Features 集合类似,Selection 集合也是 Feature 对象的集合。但是,Selection 集合表示当前已选中的 Feature 对象。每个图层对象都有自己的 Selection 集合(Layer.Selection)。根据那些已选中的图元,MapX 自动高亮显示在 Selection 集合中的所有图元。
第二节 使用 Features 集合
Features 集合类似于 Selection 集合,因为两个集合都是 Feature 对象的集合。但是,Features 集合与 Selection 集合各有一组不同的方法和属性集,而且两个集合类型的行为也不同。在 Selections 集合中自动高亮显示选中的图元,而在 Features 集合中不会突出显示图元。
取得图层中的图元
在使用 Features 集合前必须先创建集合。可以用 Layer 对象方法创建 Feature 对象的集合。
以下 Layers 集合的方法提供了多种途径来取得 Features 集合。
方法 | 描述 | 代码示例(Dim fs as Features创建 Features 集合) |
AllFeatures | 返回图层中包括所有图元的 Features 集合。 | Set fs = Map1.Layers(2).AllFeatures |
NoFeatures | 返回图层的空 Features 集合。 | Set fs = Map1.Layers(9).NoFeatures |
SearchWithinDistance | 返回在指定点对象周围的某个范围内图元的 Features 集合。 | Set fs = Map1.Layers(3). SearchWithinDistance (objPoint, _ 36.5, miUnitMile, miSearchTypeCentroidWithin) |
SearchWithinFeature | 返回由另一指定区域图元中图元组成的图元对象。 | Set fs = Map1.Layers(3). SearchWithinFeature _ (ftr, miUnitMile, miSearchTypeCentroidWithin) |
SearchWithinRectangle | 返回在指定矩形边界中的图元集合。 | Set fs = Map1.Layers(3). SearchWithinRectangle(miRect, _ miUnitMile, miSearchTypePartiallyWithin) |
SearchAtPoint | 返回由指定点处图元组成的图元集合。 | Set fs = Map1.Layers(3) .SearchAtPoint(objPoint) |