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