羅孟晗 西南大學(xué)地理科學(xué)學(xué)院
基于地圖API的最短距離批量計(jì)算
羅孟晗 西南大學(xué)地理科學(xué)學(xué)院
在比較計(jì)算城市間最短路徑常用方法后,本文結(jié)合WebGIS地圖API,提供基于實(shí)際道路網(wǎng)絡(luò)最短距離批量計(jì)算的一種解決方法。
地圖API 最短距離 WebGIS
網(wǎng)絡(luò)分析是GIS應(yīng)用中的重要領(lǐng)域,而網(wǎng)絡(luò)分析中最基本最關(guān)鍵的問(wèn)題之一是最短路徑問(wèn)題,最短路徑不僅僅指一般地理意義上的距離最短,還可以引申到其他的度量,如時(shí)間、費(fèi)用、線路容量等。
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,WebGIS的發(fā)展也為GIS研究提供了新的便利。WebGIS是基于Internet的GIS,它使用Internet環(huán)境,為各種GIS應(yīng)用提供GIS功能(如分析功能、制圖功能)和空間數(shù)據(jù)獲取能力。地圖API是基于WebGIS為開(kāi)發(fā)者免費(fèi)提供的一套基于地圖服務(wù)的應(yīng)用接口,其數(shù)據(jù)不斷更新,具有很強(qiáng)的時(shí)效性,開(kāi)發(fā)者可以通過(guò)地圖API接口免費(fèi)獲取地圖數(shù)據(jù),開(kāi)發(fā)者可以個(gè)性化建立地圖服務(wù),在個(gè)人和小型地理信息系統(tǒng)應(yīng)用具有很好的發(fā)展前景。
在交通路網(wǎng)研究中,求取最短路徑的方法主要是利用ArcGIS等軟件中的網(wǎng)絡(luò)分析工具實(shí)現(xiàn),或者根據(jù)最短路徑算法編程實(shí)現(xiàn)。
網(wǎng)絡(luò)分析工具實(shí)現(xiàn)是根據(jù)路網(wǎng)矢量數(shù)據(jù)建立網(wǎng)絡(luò)數(shù)據(jù)集,設(shè)定邊線權(quán)重,指定起點(diǎn)和終點(diǎn),得到最短距離。指定的起點(diǎn)和終點(diǎn)必須是在線上的節(jié)點(diǎn),很難計(jì)算城市間實(shí)際的時(shí)間距離,在研究區(qū)域較小時(shí),就會(huì)導(dǎo)致較大的距離誤差,對(duì)研究結(jié)果造成影響。要實(shí)現(xiàn)城市間最短距離的批量計(jì)算還需要利用ArcGIS二次開(kāi)發(fā)工具進(jìn)行改進(jìn)。
根據(jù)最短路徑算法編程實(shí)現(xiàn)也是一種主流方法。現(xiàn)有的最短路徑算法有很多種,Dijkstra算法、A*算法和Floyd算法等等。Dijkstra算法是典型的單源最短路徑算法,用于計(jì)算一個(gè)節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑。主要特點(diǎn)是以起始點(diǎn)為中心向外層層擴(kuò)展,直到擴(kuò)展到終點(diǎn)為止;A*算法是一種靜態(tài)路網(wǎng)中求解最短路最有效的方法,是一種啟發(fā)式搜索算法,算法中的距離估算值與實(shí)際值越接近,最終搜索速度越快。基于算法的編程實(shí)現(xiàn)首先需要處理數(shù)據(jù),將現(xiàn)有網(wǎng)絡(luò)抽象為圖,不同的算法對(duì)于輸入數(shù)據(jù)的要求也不同,要將現(xiàn)有交通道路數(shù)據(jù)處理為可用并且符合現(xiàn)實(shí)情況的數(shù)據(jù)需要大量的工作。通過(guò)以上兩種方法要想得到準(zhǔn)確符合實(shí)際的城市間最短距離,數(shù)據(jù)來(lái)源及處理需要花費(fèi)大量的精力和時(shí)間。
本文利用百度API接口實(shí)現(xiàn)了成渝地區(qū)某些城市間的最短路徑的批量計(jì)算。基于JavaScript的百度地圖API支持PC端和移動(dòng)端基于瀏覽器的地圖應(yīng)用開(kāi)發(fā),它提供9類 JavaScript API類參考,此處最短距離計(jì)算使用的是服務(wù)類中的DrivngRoute類。
3.1 讀取數(shù)據(jù)庫(kù)中存儲(chǔ)的城市名稱并初始化地圖
為了實(shí)現(xiàn)代碼的二次利用,數(shù)據(jù)從數(shù)據(jù)庫(kù)讀取,放入數(shù)組cities,便于批量計(jì)算。創(chuàng)建BMap地圖實(shí)例,本例以重慶為中心,縮放等級(jí)設(shè)置為6。

3.2 使用for循環(huán)
實(shí)現(xiàn)最短路徑批量計(jì)算,在網(wǎng)頁(yè)中插入button按鈕,實(shí)現(xiàn)結(jié)果的展示:

交通網(wǎng)絡(luò)中的最短距離計(jì)算是可達(dá)性分析中的基礎(chǔ)數(shù)據(jù),利用地圖API實(shí)現(xiàn)最短距離的準(zhǔn)確以及批量的計(jì)算,提高數(shù)據(jù)精度,節(jié)約了大量時(shí)間成本。地圖API的出現(xiàn)讓更多的人有機(jī)會(huì)開(kāi)發(fā)屬于自己的GIS小型應(yīng)用,讓GIS真正成為了大眾化的GIS。
[1]孟令奎,史文中,張鵬林等.網(wǎng)絡(luò)地理信息系統(tǒng)原理與技術(shù)(第二版) [M].科學(xué)出版社,2010:131
[2]華杰,基于Google Maps API的WEBGIS應(yīng)用研究[J],中國(guó)高新技術(shù)企業(yè),2010(25):82-83
[3]王一劍,GIS領(lǐng)域最短路徑算法研究[J],電腦知識(shí)與技術(shù),2009,5(1):182-183