亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        最短路徑分析在MapInfo中的實(shí)現(xiàn)

        2012-11-14 10:52:26胡殿常王晉秀
        測繪通報(bào) 2012年6期
        關(guān)鍵詞:數(shù)組二次開發(fā)路網(wǎng)

        胡殿常,王晉秀

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

        最短路徑分析在MapInfo中的實(shí)現(xiàn)

        胡殿常,王晉秀

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

        采用MapBasic語言,對(duì)MapInfo進(jìn)行功能擴(kuò)充,在MapInfo中實(shí)現(xiàn)最短路徑分析。程序首先完善路網(wǎng)表結(jié)構(gòu),增加路網(wǎng)拓?fù)渌匦璧淖侄?然后進(jìn)行路網(wǎng)拓?fù)?,建立拓?fù)潢P(guān)系,并在此基礎(chǔ)上采用Floyd算法實(shí)現(xiàn)最短路徑分析。

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

        一、引 言

        近幾年,GIS在我國快速發(fā)展,并隨著計(jì)算機(jī)軟、硬件技術(shù)的不斷成熟,這一高新技術(shù)已由研究室走向?qū)嶋H應(yīng)用領(lǐng)域,融入了人們的日常生活。電子導(dǎo)航是最重要的應(yīng)用之一,其中最短路徑分析是構(gòu)成電子導(dǎo)航的靈魂。此外,最短路徑分析在通信網(wǎng)絡(luò)、電力網(wǎng)絡(luò)等地理信息系統(tǒng)中也有著廣泛的應(yīng)用。

        MapInfo是一款桌面地理信息系統(tǒng)軟件,以簡單易學(xué)、性能穩(wěn)定等特點(diǎn),在GIS領(lǐng)域占有一定優(yōu)勢。由于其數(shù)據(jù)結(jié)構(gòu)相對(duì)簡單,無拓?fù)潢P(guān)系,因此軟件中沒有提供諸如最短路徑分析等基于拓?fù)潢P(guān)系的功能。但MapInfo提供了強(qiáng)大的二次開發(fā)接口,很多功能可通過二次開發(fā)解決。

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

        二、完善表結(jié)構(gòu)

        在MapInfo中,路網(wǎng)或其他網(wǎng)絡(luò)都以“線”的方式表現(xiàn)。每條線有“起點(diǎn)”和“終點(diǎn)”,統(tǒng)稱“端點(diǎn)”。線與線首尾相連,構(gòu)成路網(wǎng),連接處稱為“頂點(diǎn)”或“節(jié)點(diǎn)”。然而,路段編號(hào)(ID)、路段起止點(diǎn)、路段長度等屬性,并沒有被記錄。因此,首先要完善表結(jié)構(gòu),增加字段,記錄拓?fù)湫畔ⅰ?/p>

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

        Alter Table表名 (Add LineID Integer,F(xiàn)node Integer,Tnode Integer,Length float,Selected Logical)Interactive

        三、建立拓?fù)潢P(guān)系

        建立拓?fù)潢P(guān)系,主要需完成3項(xiàng)工作:給每個(gè)路段編號(hào);計(jì)算各路段長度;計(jì)算各路段的連接關(guān)系。前兩項(xiàng)可簡單計(jì)算賦值,第3項(xiàng)的算法核心是:先選定任一路段;然后尋找所有與該路段起點(diǎn)相連的路段,將相連處各路段端點(diǎn)(路段起點(diǎn)或終點(diǎn))賦相同編號(hào);路段終點(diǎn)作相同運(yùn)算。遍歷所有路段,作以上相同運(yùn)算。具體算法如下:

        1)針對(duì)路網(wǎng)表,生成查詢表RoadNet。該表中,計(jì)算出路網(wǎng)中各路段的起點(diǎn)坐標(biāo)(Xf,Yf)和終點(diǎn)坐標(biāo)(Xt,Yt),并將各路段起止點(diǎn)編號(hào)賦初值0(Fnode=0、Tnode=0)。

        2)i=0。

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

        4)如果被查到的路段起點(diǎn)編號(hào)不為0,說明已賦過值,執(zhí)行步驟5);如果起點(diǎn)編號(hào)等于0,i=i+ 1,F(xiàn)node=i,即該頂點(diǎn)編號(hào)為i。

        在RoadNet其他路段中查找起點(diǎn)與i點(diǎn)坐標(biāo)值相同的路段,給起點(diǎn)賦相同號(hào)(Fnode=i)。

        在RoadNet其他路段中查找終點(diǎn)與i點(diǎn)坐標(biāo)值相同的路段,給終點(diǎn)賦相同號(hào)(Tnode=i)。

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

        在RoadNet其他路段中查找起點(diǎn)與i點(diǎn)坐標(biāo)值相同的路段,給起點(diǎn)賦相同號(hào)(Fnode=i)。

        在RoadNet其他路段中查找終點(diǎn)與i點(diǎn)坐標(biāo)值相同的路段,給終點(diǎn)賦相同號(hào)(Tnode=i)。

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

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

        程序片段如下

        采用相似的算法,計(jì)算與上路段終點(diǎn)相連的路段。遍歷全部路段,結(jié)束。

        四、最短路徑計(jì)算

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

        1.二維數(shù)組

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

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

        2.計(jì)算結(jié)果的展示

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

        五、效果展示

        1)啟動(dòng)MapInfo,打開或新建一個(gè)路網(wǎng)表。

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

        圖1 程序運(yùn)行界面

        3)依次點(diǎn)擊“最短路徑分析”、“路網(wǎng)拓?fù)洹?,進(jìn)行路網(wǎng)拓?fù)?每個(gè)路網(wǎng)只進(jìn)行一次路網(wǎng)拓?fù)浼纯?。

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

        圖2 定義最短路徑起止點(diǎn)

        六、結(jié)束語

        最短路徑分析是GIS的重要組成部分,有著廣泛的應(yīng)用。本文提供了一種在MapInfo中實(shí)現(xiàn)這一功能的算法。通過實(shí)際驗(yàn)證,該方法界面友好、操作簡捷、運(yùn)算速度快、計(jì)算結(jié)果準(zhǔn)確、性能穩(wěn)定,有一定的實(shí)用價(jià)值。

        圖3 最短路徑分析結(jié)果

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

        [2] 彭波.數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2002.

        [3] 張劍平,任福繼,葉榮華,等.地理信息系統(tǒng)與MapInfo應(yīng)用[M].北京:科學(xué)出版社,1999.

        [4] 李勝樂,陸遠(yuǎn)忠,車時(shí).MapInfo地理信息系統(tǒng)二次開發(fā)實(shí)例[M].北京:電子工業(yè)出版社,2004.

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

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

        [7] 張虎,施一民.基于MapX的公安110報(bào)警系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].測繪通報(bào),2004(9):23-25,39.

        [8] 司連法,王文靜.快速Dijkstra最短路徑優(yōu)化算法的實(shí)現(xiàn)[J].測繪通報(bào),2005(8):15-18.

        [9] 夏松,韓用順.GIS中最短路徑算法的改進(jìn)實(shí)現(xiàn)[J].測繪通報(bào),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工作。

        猜你喜歡
        數(shù)組二次開發(fā)路網(wǎng)
        JAVA稀疏矩陣算法
        JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
        淺談基于Revit平臺(tái)的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        打著“飛的”去上班 城市空中交通路網(wǎng)還有多遠(yuǎn)
        西門子Easy Screen對(duì)倒棱機(jī)床界面二次開發(fā)
        省際路網(wǎng)聯(lián)動(dòng)機(jī)制的錦囊妙計(jì)
        中國公路(2017年11期)2017-07-31 17:56:30
        首都路網(wǎng) 不堪其重——2016年重大節(jié)假日高速公路免通期的北京路網(wǎng)運(yùn)行狀況
        中國公路(2017年7期)2017-07-24 13:56:29
        路網(wǎng)標(biāo)志該如何指路?
        中國公路(2017年10期)2017-07-21 14:02:37
        尋找勾股數(shù)組的歷程
        日本黄页网站免费观看| 国产大屁股熟女流白浆一区二区 | 日本视频一区二区三区一| 亚洲日韩国产av无码无码精品| 亚洲精品第一国产综合亚av| 中文字幕经典一区| 极品美女尤物嫩模啪啪| 91乱码亚洲精品中文字幕| 国产精品国产三级国产av品爱| 亚洲国产天堂久久综合| 人妻少妇精品视中文字幕国语| 鲁丝一区鲁丝二区鲁丝三区| 国产麻豆极品高清另类| 久久久99精品免费视频| 色www视频永久免费| 精品久久久久久国产| 台湾佬中文偷拍亚洲综合| 成人高清在线播放视频| 护士的小嫩嫩好紧好爽| 欧洲极品少妇| 在线观看精品国产福利片87| 手机在线国产福利av| 人人妻人人澡人人爽欧美一区| 精品人妻中文无码av在线| 亚洲人成精品久久久久| 国产蜜臀精品一区二区三区| 国产精品精品国产色婷婷| 精品久久久久香蕉网| 国产精品久久久av久久久| 亚洲一二三四五区中文字幕| 亚洲激情一区二区三区不卡| 久久无码人妻一区二区三区午夜| 免费a级毛片无码a∨蜜芽试看| 国产国拍亚洲精品mv在线观看| 日韩中文在线视频| 激情视频国产在线观看| 国产精品久久久免费精品| 午夜福利试看120秒体验区| 国产原创精品视频| 人妻少妇粉嫩av专区一| 国产成人91久久麻豆视频|