涂长永,钟丽波
(长春师范大学城市与环境科学学院,吉林长春 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设计公交网络分析系统,利用该系统可以为乘客出行提供高效、便捷的服务,满足大多数移动终端客户需求。系统采用轻量级客户端解决方案,用户无需下载数据到移动终端。这是一种较好的移动平台公交查询解决方案。