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

3.2 使用for循環
實現最短路徑批量計算,在網頁中插入button按鈕,實現結果的展示:

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