涂長永,鐘麗波
(長春師范大學城市與環境科學學院,吉林長春 130032)
人們在乘公交出行時的路線在出行途中可能發生變化?;诖?,本文設計了一種可以讓乘客進行快速查找公交換乘方案的系統。本系統以長春市為例,使用SuperMap iServer設計并實現了公交換乘線路分析的4種方法:最少時間、最短距離、少步行和少換乘。還提供了網絡分析功能,如最優路徑分析和旅行商分析等。
系統主要服務于有出行需求的大眾用戶,要求在系統設計,尤其是界面和接口設計上,設計簡捷,以方便用戶使用。根據需求分析的成果,把系統功能按層次圖形式呈現,如圖1所示。

圖1 系統功能結構圖
系統的重點在于實現交通換乘的設計,用戶可以輸入起點和終點,并選擇按最少時間、最短距離、少步行和少換乘四種偏好來查詢公交換乘方案,查詢結果會有不同方案供用戶選擇,當用戶點擊了某個具體方案,系統可以提供圖形和文字方式來指引用戶出行。
系統中主要包含公交路線和公交站點兩類實體集。公交路線實體包括6項:公交路線編號、公交路線名稱、公交路線起始點、公交路線目的地、公交路線途經站點以及公交路線坐標等信息。網絡數據集中,公交線路表設計如表1所示。
系統使用的空間數據由SuperMap iServer 9D發布,并以SuperMap iClient for Android為客戶端開發工具,在Android Studio中用Java語言實現具體功能。系統架構如圖2所示。

表1 公交線路表設計

圖2 系統架構
當數據服務器連接成功以后就進入了系統功能選址界面,點擊交通換乘分析進入交通換乘界面,主界面顯示長春市交通圖。點擊移動設備的菜單按鈕,點擊“路線搜索”菜單,在彈出的對話框中輸入要查詢的起點和終點,用戶依據個人喜好選擇四種不同的換乘方式,實現流程圖如圖3所示。功能實現如圖4、圖5所示。

圖3 公交換乘分析流程圖

圖4 站點查詢界面

圖5 公交換乘方案選擇界面
交通換乘查詢的關鍵算法:
protected voidonNewIntent(Intent intent) {
Log.d("iserver","TrafficTransferAnalyst onNewIntent!");
isOnNewIntent=true;
Bundle newBundle=intent.getExtras();
List
geoPointList=(List
Log.d("iserver","points:"+geoPointList.size());
mapView.getOverlays().add(lineOverlay);
if(geoPointList.size()>=2){
if(mapView.getOverlays().contains(overlayStart)){
mapView.getOverlays().remove(overlayStart);
}
if(mapView.getOverlays().contains(overlayEnd)){
mapView.getOverlays().remove(overlayEnd);
}
overlayStart=newDefaultItemizedOverlay(drawableStart);
OverlayItemoverlayItemStart=newOverlayItem(geoPointList.get(0),"起點","起點");
overlayStart.addItem(overlayItemStart);
overlayEnd=newDefaultItemizedOverlay(drawableEnd);
OverlayItem overlayItemEnd =newOverlayItem(geoPointList.get(geoPointList.size()-1),"終點","終點");
overlayEnd.addItem(overlayItemEnd);
mapView.getOverlays().add(overlayStart);
mapView.getOverlays().add(overlayEnd);
}
lineOverlay.setData(geoPointList);
lineOverlay.setShowPoints(true);
mapView.invalidate();
}
為了方便步行至公交站點或目標地點,系統還應包含常用的網絡分析功能,如最短路徑分析功能和旅行商分析功能。執行結果如圖6、圖7所示。

圖6 交通網絡分析界面

圖7 最佳路徑分析結果
根據出行用戶對公交換乘查詢的實際需求,以SuperMap iServer 9D為開發平臺,基于移動GIS設計公交網絡分析系統,利用該系統可以為乘客出行提供高效、便捷的服務,滿足大多數移動終端客戶需求。系統采用輕量級客戶端解決方案,用戶無需下載數據到移動終端。這是一種較好的移動平臺公交查詢解決方案。