向已有的网络数据集追加数据,可以追加点、线或网络。

命名空间:  SuperMap.Analyst.NetworkAnalyst
程序集:  SuperMap.Analyst.NetworkAnalyst (in SuperMap.Analyst.NetworkAnalyst)
版本: dll

语法

C#
public static bool AppendToNetwork(
	DatasetVector networkDataset,
	DatasetVector[] datasets
)

参数

networkDataset
Type: SuperMap.Data..::.DatasetVector
指定的被追加的网络数据集。
datasets
Type: array< SuperMap.Data..::.DatasetVector >[]()[]
指定的待追加的数据,可以是点、线或网络数据集。

返回值

一个布尔值,指示是否追加成功。如果成功,返回 true,否则返回 false。

备注

网络数据集一般由线数据(以及点数据)构建而成。一旦构建网络的数据发生变化,原有网络就会过时,如果不及时更新网络,就可能影响分析结果的正确性。通过将新增数据追加到原有网络的方式,可以不必重新构建网络而得到较新的网络。如下图所示,某区域新建了若干道路(红色线),将这些道路抽象为线数据,追加到扩建之前所构建的网络上,从而更新了路网。

此方法支持向已有网络追加点、线以及网络数据集,并且可以同时追加多个相同或不同类型的数据集,例如,同时追加一份点数据和两份线数据。注意,如果追加的数据具有多种类型,系统将按照先追加网络,再追加线,最后追加点的顺序来依次追加。下面分别介绍向网络中追加点、线和网络的方式和规则。

  • 向已有网络追加点
  • 点被追加到已有网络后,将成为网络中新的结点。向已有网络追加点时,需要注意以下要点:

    1. 待追加的点必须在已有网络的弧段上。追加后,在弧段上该点位置处增加新的结点,该弧段将自动在新增结点处断开为两条弧段,如下图中的点 a、点 d。如果待追加的点不在网络上,即不在弧段上,也不与结点重叠,将被忽略,不会追加到网络上,因为孤立结点在网络中并无地学意义。下图中的点 b 就属于这种情况。
    2. 如果待追加的点与已有网络的结点重叠,则将待追加点与重叠结点合并,如下图中的点 c。

  • 向已有网络追加线
  • 线被追加到已有网络后,将成为网络中新的弧段,并且在线的端点、与其他线(或弧段)的交点处打断并增加新的结点。向已有网络追加点时,需要注意以下要点:

    1. 待追加的线不能存在与已有网络弧段重叠或部分重叠,否则会导致追加后的网络存在错误。

  • 向已有网络追加另一网络
  • 将一个网络追加到已有网络后,二者将成为一个网络,如下图所示。注意,与追加线相同,向已有网络中追加网络时,需要确保这两个网络不存在弧段的重叠或部分重叠,否则会导致追加后的网络存在错误。

    待追加网络与被追加网络叠加出现弧段相交的情形时,在相交处会添加新的结点,从而建立新的拓扑关系。

    网络的连通性不影响网络的追加。如下例中,将待追加网络追加到原始网络后,结果是一个包含两个子网的网络数据集,并且两子网不连通。

注意:

  1. 该方法将直接修改被追加的网络数据集,不会生成新的网络数据集。
  2. 待追加的点、线或网络数据集必须与被追加的网络数据集具有相同的坐标系。
  3. 待追加的点、线或网络数据集中,如果存在与网络数据集相同(名称和类型都必须相同)的属性字段,那么这些属性值会自动保留到追加后的网络数据集中;如果不存在相同的字段,则不保留。其中,点数据集、网络数据集的结点数据集的属性,保留到被追加网络的结点属性表中;线数据集的属性,保留到被追加网络的弧段属性表中。

请参见