999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

最短路徑分析在MapInfo中的實現

2012-11-14 10:52:26胡殿常王晉秀
測繪通報 2012年6期
關鍵詞:二次開發

胡殿常,王晉秀

(解放軍1206地理信息中心,河北廊坊065000)

最短路徑分析在MapInfo中的實現

胡殿常,王晉秀

(解放軍1206地理信息中心,河北廊坊065000)

采用MapBasic語言,對MapInfo進行功能擴充,在MapInfo中實現最短路徑分析。程序首先完善路網表結構,增加路網拓撲所必需的字段;然后進行路網拓撲,建立拓撲關系,并在此基礎上采用Floyd算法實現最短路徑分析。

MapInfo;最短路徑分析;MapBasic;Floyd;GIS

一、引 言

近幾年,GIS在我國快速發展,并隨著計算機軟、硬件技術的不斷成熟,這一高新技術已由研究室走向實際應用領域,融入了人們的日常生活。電子導航是最重要的應用之一,其中最短路徑分析是構成電子導航的靈魂。此外,最短路徑分析在通信網絡、電力網絡等地理信息系統中也有著廣泛的應用。

MapInfo是一款桌面地理信息系統軟件,以簡單易學、性能穩定等特點,在GIS領域占有一定優勢。由于其數據結構相對簡單,無拓撲關系,因此軟件中沒有提供諸如最短路徑分析等基于拓撲關系的功能。但MapInfo提供了強大的二次開發接口,很多功能可通過二次開發解決。

MapInfo提供了3種二次開發方法:MapBasic語言、MapX組件和OLE技術。MapX和OLE適合開發獨立的應用系統,而MapBasic比較適合MapInfo功能擴展編程。MapBasic是MapInfo自帶的二次開發語言,是一種類似Basic的解釋性語言,利用Map-Basic編程生成的*.mbx文件可在MapInfo軟件平臺上運行。本文主要介紹采用 MapBasic語言在MapInfo中實現最短路徑分析的方法。

二、完善表結構

在MapInfo中,路網或其他網絡都以“線”的方式表現。每條線有“起點”和“終點”,統稱“端點”。線與線首尾相連,構成路網,連接處稱為“頂點”或“節點”。然而,路段編號(ID)、路段起止點、路段長度等屬性,并沒有被記錄。因此,首先要完善表結構,增加字段,記錄拓撲信息。

增加的字段有 LineID、Fnode、Tnode、Length、Selected,分別記錄路段編號、道路起點號、道路終點號、路段長度(m)和是否為選出的路段(計算結果圖形顯示時用)。主要程序片段為

Alter Table表名 (Add LineID Integer,Fnode Integer,Tnode Integer,Length float,Selected Logical)Interactive

三、建立拓撲關系

建立拓撲關系,主要需完成3項工作:給每個路段編號;計算各路段長度;計算各路段的連接關系。前兩項可簡單計算賦值,第3項的算法核心是:先選定任一路段;然后尋找所有與該路段起點相連的路段,將相連處各路段端點(路段起點或終點)賦相同編號;路段終點作相同運算。遍歷所有路段,作以上相同運算。具體算法如下:

1)針對路網表,生成查詢表RoadNet。該表中,計算出路網中各路段的起點坐標(Xf,Yf)和終點坐標(Xt,Yt),并將各路段起止點編號賦初值0(Fnode=0、Tnode=0)。

2)i=0。

3)查找RoadNet中第一個路段。

4)如果被查到的路段起點編號不為0,說明已賦過值,執行步驟5);如果起點編號等于0,i=i+ 1,Fnode=i,即該頂點編號為i。

在RoadNet其他路段中查找起點與i點坐標值相同的路段,給起點賦相同號(Fnode=i)。

在RoadNet其他路段中查找終點與i點坐標值相同的路段,給終點賦相同號(Tnode=i)。

5)如果被查到的路段終點編號不為0,說明已賦過值,執行步驟6);如果終點編號等于0,i=i+ 1,Tnode=i,即該頂點編號為i。

在RoadNet其他路段中查找起點與i點坐標值相同的路段,給起點賦相同號(Fnode=i)。

在RoadNet其他路段中查找終點與i點坐標值相同的路段,給終點賦相同號(Tnode=i)。

6)找到RoadNet中下一個路段,重復步驟4)、步驟5)。

7)遍歷所有路段,結束。

程序片段如下

采用相似的算法,計算與上路段終點相連的路段。遍歷全部路段,結束。

四、最短路徑計算

迪杰斯特拉(Dijkstra)算法和弗洛伊德(Floyd)算法,是解決最短路徑問題的經典算法。Dijkstra算法又稱為單源最短路徑,是從一個頂點出發,求該頂點至所有可到達頂點的最短路徑;Floyd算法可以計算出所有頂點之間的最短路徑,計算結果為兩個矩陣,一個是任意兩個頂點之間的最短距離;另一個是任意兩點之間的最短路徑。很顯然,Floyd算法時間復雜度要高。但一般情況下,路網不會在短時間內更新,路網拓撲關系也相對固定,所以可采用Floyd算法,將計算結果矩陣以文件的形式保存,在最短路徑分析時,隨時調用,不再重復計算,這樣可大幅提高效率。MapInfo平臺上比較適合采用這種方法。該算法簡捷,這里不再介紹,但在算法實現中有兩點需要說明。

1.二維數組

在MapBasic語言支持的數據類型中,包含一維數組,不包含二維數組。但Floyd算法的鄰接矩陣需要用二維數組存儲、運算,因此,在程序中需要用一維數組實現二維數組功能。程序片段如下

要訪問二維數組G(m,n)時,采用G(a(m,n))的方式調用,這樣就實現了用一維數組替代二維數組。

2.計算結果的展示

在MapInfo中,計算結果要以圖形(可視化)的方式表現,因為圖形能更好地識別和解釋,達到所見即所得的效果。為方便處理,在路網表中,增加了Selected字段,最短路徑分析時,將最短路徑所包含路段的Selected值賦為1,最后在路網表中查找Selected=1即可。程序如下

五、效果展示

1)啟動MapInfo,打開或新建一個路網表。

2)運行最短路徑分析程序,MapInfo中增加了“最短路徑分析”菜單,如圖1所示。

圖1 程序運行界面

3)依次點擊“最短路徑分析”、“路網拓撲”,進行路網拓撲(每個路網只進行一次路網拓撲即可)。

4)依次點擊“最短路徑分析”、“查找最短路徑”,選取最短路徑分析工具,在圖中起點處按下鼠標左鍵,移動到終點處松開鼠標,即可顯示出起點至終點的最短路徑,如圖2、圖3所示。

圖2 定義最短路徑起止點

六、結束語

最短路徑分析是GIS的重要組成部分,有著廣泛的應用。本文提供了一種在MapInfo中實現這一功能的算法。通過實際驗證,該方法界面友好、操作簡捷、運算速度快、計算結果準確、性能穩定,有一定的實用價值。

圖3 最短路徑分析結果

[1] 沙宗堯,邊馥苓.單源最短路徑算法的圖示教學設計與實踐[J].測繪通報,2010(4):58-61.

[2] 彭波.數據結構[M].北京:清華大學出版社,2002.

[3] 張劍平,任福繼,葉榮華,等.地理信息系統與MapInfo應用[M].北京:科學出版社,1999.

[4] 李勝樂,陸遠忠,車時.MapInfo地理信息系統二次開發實例[M].北京:電子工業出版社,2004.

[5] 王曉東,趙全磊,吳建民.MapBasic在MapInfo功能擴展中的應用[J].測繪通報,2007(8):51-54.

[6] 陳繼山,須鼎興.使用Shape文件進行最短路徑的分析與跟蹤[J].測繪通報,2004(12):8-10.

[7] 張虎,施一民.基于MapX的公安110報警系統的設計與實現[J].測繪通報,2004(9):23-25,39.

[8] 司連法,王文靜.快速Dijkstra最短路徑優化算法的實現[J].測繪通報,2005(8):15-18.

[9] 夏松,韓用順.GIS中最短路徑算法的改進實現[J].測繪通報,2004(9):40-42.

Realization of the Shortest Path Analysis in MapInfo

HU Dianchang,WANG Jinxiu

0494-0911(2012)06-0087-03

P208

B

2011-12-02

胡殿常(1968—),男,河北淶水人,工程師,主要從事GIS工作。

猜你喜歡
二次開發
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
西門子Operate高級編程的旋轉坐標系二次開發
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
基于C#的AutoCAD建筑構件庫二次開發
江西建材(2018年2期)2018-04-14 08:01:14
西門子Easy Screen對倒棱機床界面二次開發
基于全站儀二次開發的覆冰厚度測量與實現
電測與儀表(2016年9期)2016-04-12 00:29:52
Micaps3.2 版本二次開發入門淺析
西藏科技(2015年12期)2015-09-26 12:13:51
基于VB的ANSYS二次開發在變壓器抗短路性能分析中的應用
基于CATIA的橡皮囊成形毛料展開的二次開發
機械工程師(2015年9期)2015-02-26 08:38:10
ANSYS Workbench二次開發在汽車穩定桿CAE分析中的應用
汽車零部件(2014年5期)2014-11-11 12:24:32
主站蜘蛛池模板: 青青极品在线| 成人av专区精品无码国产| аⅴ资源中文在线天堂| 成人免费视频一区二区三区 | 久久免费视频播放| 欧美精品色视频| 国产免费福利网站| 国产精品观看视频免费完整版| 午夜天堂视频| 国产浮力第一页永久地址| 18禁影院亚洲专区| 中文字幕在线一区二区在线| 亚洲欧美日韩另类| 香蕉99国内自产自拍视频| 高潮爽到爆的喷水女主播视频| 欧美性爱精品一区二区三区 | av在线无码浏览| 91久久偷偷做嫩草影院电| 日韩少妇激情一区二区| 日韩精品一区二区三区大桥未久| 国产亚洲欧美在线专区| 亚洲日韩久久综合中文字幕| 免费看美女自慰的网站| 日韩区欧美国产区在线观看| 国产精品亚洲专区一区| JIZZ亚洲国产| 无遮挡国产高潮视频免费观看 | 亚洲美女操| 免费xxxxx在线观看网站| 亚洲日韩精品无码专区97| 亚洲日韩AV无码一区二区三区人| 免费人成在线观看视频色| 欧美精品在线免费| 欧美成人怡春院在线激情| 波多野结衣中文字幕一区二区| 九九久久精品免费观看| 色综合中文字幕| 亚洲天堂精品在线观看| 99热这里只有成人精品国产| 国产麻豆91网在线看| 青草精品视频| 国产精品久久久久久久久kt| 在线观看无码av五月花| 国产区免费| 黄色网在线| 高清不卡一区二区三区香蕉| 色成人综合| 片在线无码观看| 国产精品自在在线午夜区app| 色综合成人| 日本国产精品| 中文无码伦av中文字幕| 在线精品亚洲国产| 18禁影院亚洲专区| 国产91高跟丝袜| 伦精品一区二区三区视频| 亚洲另类色| 国产91久久久久久| 亚洲精品国产精品乱码不卞| 全部免费毛片免费播放| 国产成人精品日本亚洲77美色| 成人久久精品一区二区三区 | 国产精品永久不卡免费视频| 另类欧美日韩| 亚洲精品在线91| 久久午夜夜伦鲁鲁片无码免费| 成人国产精品网站在线看| 在线五月婷婷| 国产区在线观看视频| 永久在线播放| 亚洲精品日产精品乱码不卡| 国产精品一老牛影视频| 中文字幕乱妇无码AV在线| 无码AV动漫| 真实国产精品vr专区| 在线观看亚洲精品福利片| 欧美精品成人| 久久精品免费国产大片| 久久网欧美| 国产一区二区三区视频| 欧美国产菊爆免费观看 | 久草视频中文|