一、MapX简介
MapX控件是由MapInfo公司提供的具有强大地图分析功能的ActiveX控件产品。由于它是一种基于Windows操作系统的标准控件,因而能支持大多数标准的可视化开发环境,如Visual Basic、Visual C++、Delphi和PowerBuilder等。通过MapX控件可以将地图功能嵌入到应用程序中,并可脱离MapInfo的软件平台运行。MapX控件按图层组织地图,每个图层包含整个地图的一个方面并对应一个MapInfo表。文中的中国主干公路网由“中国主干公路节点”图层和“中国主干公路线”图层组成,数据为MapInfo格式。中国主干公路节点.tab和中国主干公路线.tab数据组织格式如图1和图2所示。
图1 中国主干公路节点.tab
图2 中国主干公路线.tab
二、Dijkstra算法
Dijkstra算法是目前公认的效率较高的最短路径算法。算法基本思想是采用标号的方法,从起点开始逐步向外搜索起点到其他各点的最短路径。算法基本步骤如下:
首先给起始节点标上永久性标号0,然后给每个与起始节点直接相连的节点标上一个临时标号,标号值为连接起始节点和该节点线路的长度值。给其他未与起始节点直接相连的节点的临时标号为∞。
选择具有最小临时标号的节点,将该节点的临时标号改为永久性标号。假设节点i是刚获得永久性标号的节点,搜索每个与节点i直接相连且具有临时标号的节点j,用min{节点j目前的临时标号,节点i的永久性标号+线路(i,j)的长度值}对节点j的临时标号进行更新。
|