# 网络类
现代社会的经济基础在于社会的基础设施:电缆、管线以及促进能源、商品和信息流通的线路等,这些基础设施可以模型化为“网络”。
MapGIS中的网络模型主要在以下两个方面发挥作用:
作为GIS平台网络分析功能的基础。这些网络分析功能包括路径分析,连通分析,流向分析,资源分配,定位分配,网络追踪等等。
作为城市基础设施(给水排水、能源供应、道路交通、邮电、园林绿化、防灾)的数据模型,为城市基础设施GIS应用软件提供支持。使用网络分析功能,可以完成以下应用:
- 最佳的城市物流服务路线建立;
- 根据中心容量及沿线及站点的需求将沿线或站点分配给中心;
- 城市电力网络故障分析;
- 环境监测过程中水污染源追踪或污染源的污染范围追踪;
- 城市交通最佳路径选择。
MapGIS 10整合了“K9网络编辑与分析系统”解决方案,为用户提供了一个获取、存储和分析网络的完整模型。
MapGIS 10网络除了兼容了MapGIS K9的几何建网方式外,还提供了更为精确的属性建网策略,下面将一一介绍。
提示:
MapGIS 10标准版中只能够创建和浏览网络,能够对网络数据进行连接规则检查,不提供网络类分析功能。
# 相关主题
# 几何建网
建网原理
几何捏合模型建网策略将几何空间位置邻近并且在设定的容差范围内的要素进行捏合,构建拓扑关系,使其具有连通性。
几何建网是如何捏合的?如下图所示,虚线圆圈范围为设定的容差范围,如下图“AB进行捏合”,两条线的端点在虚线容差范围内,则进行捏合,两条线具有拓扑关系,浅显的说,即两条线可以连通,假设这两条线表示两条街道线,则从A街道可以走到B街道。如下图“AB不进行捏合”,两条线的端点不在虚线容差范围内,所以不进行捏合,两条线不具有拓扑关系,则从A线不能到达B线。
参与建网的要素可以是点、线简单要素类。现有lin1线简单要素类,其中有LinA、LinB两条线;pnt1点简单要素类,其中有一个点Pnt1。在MapGIS网络中,这些有几何实体的点、线称为实体点、实体线。建网时,按照设置的捏合策略,对要素构建拓扑关系,建立逻辑网络。LinA、LinB在点Pnt1处捏合,逻辑网中,LinA和LinB都有一个端点是Pnt1,但线必须有起点和终点,LinA、LinB还有一端没有实体点可以捏合,为了保证拓扑完整性,系统会自动为它们补充拓扑点,保存在“网络类名_TopoNod”简单要素类中。拓扑点不具有几何意义。
一、数据准备
建立一个街区路网,首先需要准备道路中的线要素图层(如:街道线、地铁线、城市管道线等),以及道路中的点要素图层(如:街道交叉点、路灯点、地铁点,视具体情况而定)。
创建网络分析中需要用到的权值字段,在道路线的属性结构中设置如下四个属性字段:
F0T0IMP:顺距离,从一条街道的起点行至终点的路程长度
T0F0IMP:逆距离,从一条街道的终点行至起点的路程长度
F0T0TIME:顺时,从一条街道的起点行至终点所需时间
T0F0TIME:逆时,从一条街道的终点行至起点所需时间
权值字段通常都具有实际应用意义,并且一般都是成对出现,因为顺权值和逆权值在某些情况下可能是不同的。比如图,两条道路之间有个转盘,走红色线路需绕转盘的大圈,而反之则只需绕一小圈,所走的路程长度也就不一样。这种实际中的情况被简化成网络后,在视觉上就看不出来了,只能通过权值的大小来表示。
权值为负数时表示不可通行。
权值属性字段:
二、创建网络类
网络类的创建需要简单要素类的参与;并且,几何网络与它所参与的各简单要素类必须处于同一地理要素数据集之中。
创建网络类的最低要求:在要素数据集中至少有一个简单要素类线文件,否则无法创建。
# 操作说明
1. 展开所创建要素数据集根目录,在“网络类”节点的右键菜单中选择“创建”,弹出创建网络类向导,如图所示:
2. 在创建向导的“基本信息”页面上,命名网络类并设置捕捉半径,勾选是否改变几何坐标和是否仅创建网络类框架,完成基本信息设置,单击“下一步”。
- 【捕捉半径】:网络的创建将根据指定的捕捉半径对节点和边线进行捏合;实际的数据中,如:某收费站应该坐落在某条公路上,但采集数据过程中,道路和站点坐标可能会有偏差,导致点不在线上。在建网时,需要使用捕捉半径消除这个误差,若节点和边线在设置的半径内,则认为这二者可以捏合在一起。
- 【仅创建网络类框架】:创建一个空的网络类,此接口提供给二次开发使用。
- 【建立关联关系】:系统自动根据关联关系表中的内容为要素建立关联。
3. 网络数据层信息设置。在网络类创建向导的“网络层信息”设置页面的层信息管理”栏中,用户可以修改网络层的名称,查看层建网策略。在“层详细设置”中,选择网络层中包含的简单要素类(对单图幅来说一般由一个简单点要素类和一个简单线要素类建网,N个图幅则一般由N个简单点要素类和N个简单线要素类建网),并设置简单要素类在网络层中的几何连通策略。
根据建立的几何网络的需求,选择合适的几何连通策略。完成网络层信息设置,单击“下一步”;
- 【端点策略】:仅在线端点处进行连通捏合。如图,主干道(黑色线)只在端点处连通。
端点策略
- 【顶点策略】:在线的任意顶点处捏合。如图,主干道在各分支处也连通。
顶点策略
对于边,点要素与边要么在其端点处要么在折点处相连接,具体取决于对应边的连通性策略。点要素的几何连通策略包括:
- 【依边策略】:尊重线的策略。若线是端点策略,则点在线端点时被捏合;若线为顶点策略,点在线被捏合的顶点处时,才被捏合。
线端点策略--依边策略
线顶点策略--依边策略
- 【优先策略】:忽略边的策略,在任意顶点处都可以捏合。
点优先策略
- 【复杂点】:可以包含多个点和多条边。
4. 网络权信息。完成网络层的设置,在“网络权信息”页面上,设置网络权,并为对应的网络权绑定参与建网的简单要素类的对应字段,完成设置,单击“下一步”。
另外,您还可以通过,来添加或删除网络权。对于用户自己添加的网络权,可以分为两种类型:比例网络权、绝对网络权。网络权数据类型分有四种:短整型、长整型、浮点型、双精度型。您可以双击其网络权属性字段或点击下拉菜单即可对网络权字段属性进行修改或选定。
- 【网络权】:是指经过某个结点元素或者某个边线元素所需要克服的阻碍。
- 【网络需求】:资源分配时沿线上的需求,在进行“服务范围分析”和“定位分配分析”时,将用到此权值字段;
- 【指示流向】:网络的流向;0表示正向,1表示逆向,2表示双向。
- 【使能状态】:表示设置某个网络边要素的属性值去禁用或者激活某个网络元素,即用于设置网络是否连通;值为布尔型,0表示激活,1表示禁用。
以上是默认的三个网络权(不可被删除)。对于每一个网络权,您需要在“绑定字段”栏中相应的简单要素类上为其绑定有意义的字段。
根据准备的数据,设置如图4个权值:
分别为4个权值绑定之前设置的字段:顺距离绑定简单要素类中F0T0IMP字段;逆距离绑定简单要素类中T0F0IMP字段;顺时绑定简单要素类中F0T0TIME字段;逆时绑定简单要素类中T0F0TIME字段。
完成网络权设置,点击"下一步",跳转到“确认创建”页面。
5. 在创建向导的“确认创建”页面上,确认创建信息是否正确:若创建信息无误,单击"完成",即完成网络类的创建;若信息有误。单击“上一步”,在相应创建位置进行修改。
几何网络是地理数据库中的对象。网络中的要素经编辑后,MapGIS 自动对几何网络进行维护。
# 属性建网
由上节的介绍可以看出,几何建网具有一定的局限性。它必须具备两个条件:(1)精确的几何坐标(2)合适的容差范围。在一些领域应用中,也会出现一些弊端。例如:通信领域中,光交接箱与其连接的缆线之间具有逻辑相连性,但从空间临近关系分析,光交接箱的几何中心与缆线端点在几何位置上是不在容差范围之内的,导致无法建立正确的拓扑关系。又例如:当线要素的端点处存在多个完全重叠或者相近的点要素,几何捏合模型对于要素间拓扑关系的建立将具有随机性,这种随机性可能会造成错误的网络拓扑关系
鉴于这种局限性,MapGIS 10提供另外一种建网模式:属性建网。
建网原理
许多行业的地理网络,其拓扑关系在数据采集时已经精确获得。为此,建立了拓扑关系和关联关系的固化标准格式,将已知的精确拓扑关系按照固化格式生成语义信息,各层子网分别根据语义字段信息值,自动地生成元素间的拓扑关系;当拓扑信息不完整时,采用几何捏合方法实时生成拓扑关系。
已知的拓扑关系信息存储在线要素的属性结构中,主要包括:
以下图数据为例,线简单要素类。现有lin1线简单要素类,其中有LinA、LinB两条线;pnt1点简单要素类,其中有两个点Pnt1、Pnt2。按照下图的拓扑关系信息建网。LinA的起点为Pnt1,终点为Pnt2;LinB的起点为Pnt1,LinA与LinB连通。LinB缺少终点信息,系统自动为其补充拓扑节点。
一、数据准备
准备参与建网的简单要素类(仍以街区道路网为例),将拓扑信息写入线要素类的指定字段。具体参照上节介绍。
拓扑信息属性字段:
网络分析中需要用到的权值字段:
完成参与建网的线要素属性信息:
拓扑信息中FCLS、TCLS是起始点(或终止点)简单要素类在地理数据库中的ID,可以在内容视窗->浏览基本信息中查看。FTN、TTN都是指要素的OID。
二、创建网络类
目前,MapGIS中暂时只支持在Oracle数据源下的数据库中,进行属性建网操作。
进行属性建网的的基本要求与几何建网时要求相同。以下是属性建网的详细步骤:
# 操作说明
1. 展开要素数据集根目录,网络类右键菜单选择“创建”,进入创建网络类向导。同几何建网。
2. 设置网络基本信息。在创建向导的“基本信息”页,命名网络类并设置捕捉半径。同几何建网。
其中,若选择【建立关联关系】,那么系统默认创建两个网络层以进行关联。若需创建这样的关联关系,您或许需要先参考“拓扑关联”中的相关内容。
3. 设置网络类层数。在“网络层信息管理”栏右侧,可以通过“添加层”或“删除层”按钮,来添加或删除网络层。您可以创建多个网络层,并按类别将不同要素放在不同网络层上(该步骤可实现网络类的多层建网,多层建网的相关信息可参考“网络层次”中的相关内容)。
另外您可以点击层建网策略项,来选择进行几何建网或属性建网。
4. 关键字设置。设置网络分析中将用到的网络权,并为网络权绑定网络权字段。同几何建网。
5. 在创建向导的“确认创建”页面上,查看创建信息,点击"完成",完成网络创建。
提示:
使用属性建网时,请严格按照“数据准备”中的方法准备数据,否则,即使能创建网络,该网络也不能正确被使用。
# 网络层次
随着社会发展,时代的进步,现代化城市进程日益加快。实际应用中,用途纷繁的公共设施呈现出错综复杂的关系。而传统的网络模型通常将一个领域内的所有空间目标视为一种模式,而各种现实地理网络往往面对着多特征多层次的表达需求。例如:现代化的市政管理中有城市交通网、管道网、电力线网以及各种公共设施网等等,而且这些网中还可以嵌套子网路,例如:城市交通网中不仅有街区道路,还有地铁、航线等。每种网络都有自己不同的模式,传统的单层网络无法满足错综复杂的网络需求,在这种背景下,多层次的网络模型应运而生。
我们把具有共同特性(模式)的地理要素在概念上聚集为层,比如上例中提到的城市交通网、管道网可分为不同的层,它们是城市管理网络中的不同的子层。不同子网之间可通过具有连通特性的节点进行拓扑关联,也可以相互独立,互不连通。比如:交通网中,地铁网可通过地铁站与街区道路网连通。
# 拓扑关联
实际应用中,地理网络的不同特征对应的子层次之间存在着复杂的关联特性。例如:多模式交通网络中的地铁站点因部署于道路之上而与道路具有关联,城市路灯系统中路灯因架设在道路上而与道路具有关联。
如图所示,光缆线和电缆线都部署在管道中,因此,光缆线、电缆线与管道都有关联,光缆线与电缆线之间没有关联。光缆线和电缆线都是管道的附属网络,具有拓扑关联的要素,若父节点变化,则子节点一定跟着变化;若子节点变化,则对父节点没有影响。比如:管道改线或移动,则光缆线、电缆线都会发生相应的位移;反之将光缆线、电缆线移走,对管道没有影响。
MapGIS 10网络中允许节点与节点之间,弧段与弧段之间存在关联。要素间的关联关系以数据库表的形式存储(这也限制了网络类必须创建在oracle数据源下)。
首先确定网络类的名称NetName,在对应的数据库下创建点—点要素关联关系表NR_ NetName,线-线关联关系表ER_NetName(名称不可以随意更改)。表中包含如下列:
FID:当前简单要素类的要素ID
FCLSID:当前简单要素类ID
PARFID:当前要素的父亲节点ID
PARFCLSID:当前要素的父节点所在简单要素类ID
以下图所示的电缆线与管道为例,电缆线1与管道线5、6相互关联,电缆线2与管道线7、8关联。
为这两个线要素建立拓扑关系表。
- 在oracle数据库中相应的表空间下创建表ER_NetName。为表创建上述4个字段。
②为字段赋值。电缆线是依附着管道的,所以电缆线是孩子,管道是父亲。因此,电缆线FID=1时,FCLSID(当前要素类ID)为电缆线的类ID 28,PARFCLSID(父亲类ID)为管道的类ID 29,PARFID=5、6(此处指的都是OID)。对其他要素依次赋值。
电缆点1与管道点1、电缆点2与管道点4,电缆点4与管道点8相互关联。
为这两个点要素建立拓扑关系表。
①在oracle数据库中相应的表空间下创建表NR_NetName。为表创建上述4个字段。
②为字段赋值。电缆点FID=1时,FCLSID(当前要素类ID)为电缆线的类ID 30,PARFCLSID(父亲类ID)为管道的类ID 31,PARFID=1(此处指的都是OID)。对其他要素依次赋值。
关联表建立后,在创建网络类时,勾选“建立关联关系”,系统自动根据关联关系表中的内容为要素建立关联。
# 查看网络类
创建好网络类后,您可以查看这个网络。
# 操作说明
1. 在已经创建好的网络类上右键,弹出右键菜单,选择“预览”项,内容视窗中的“图属信息”查看窗口被激活。
2. 在内容视窗上,您可以查看网络类的图形信息、基本信息以及元数据信息。如下图:
# 其他管理操作
在MapGIS中,还提供了以下一些网络类的管理操作:
# 复制网络类
MapGIS中提供了网络类的复制功能,包括网络类的全部图属信息,和网络类的Url两种复制方式。您可以使用“复制”功能,将已创建好的网络类复制到指定的网络类文件节点下;也可以使用“复制Url”复制网络类所在位置的URL。
以下是复制操作的具体步骤:
右键选择需要复制的网络类,在其右键菜单中选择“复制”项后,在网络类欲粘贴的目标位置的右键菜单中,单击“粘贴”,即完成了网络类的复制。
另外,您也可以复制网络类的Url,复制的URL主要便于二次开发中对类访问。
# 重命名
重命名网络类。对创建好的网络类进行重命名。
# 删除
在已创建好的网络类的右键菜单中,还提供了网络类的删除功能,能够将不再使用的网络类删除。在执行删除操作时,会删除网络以及创建网络类时自动生成的拓扑点,但不但不会删除创建网络类的要素类。