|
|
|
@ -1,2 +1,68 @@
|
|
|
|
|
# Urban_subway_navigation_system
|
|
|
|
|
城市地铁导航系统
|
|
|
|
|
摘要:本项目针对城市地铁导航系统问题,可实现的功能有:
|
|
|
|
|
1、输出所有地点及其介绍
|
|
|
|
|
2、查询某一个地点及其介绍
|
|
|
|
|
3、增加一个地点
|
|
|
|
|
4、删除一个地点
|
|
|
|
|
5、更新一个地点
|
|
|
|
|
6、增加一条路
|
|
|
|
|
7、删除一条路
|
|
|
|
|
8、更新一条路
|
|
|
|
|
9、查询某一地点到其他所有地点的最短路径
|
|
|
|
|
10、查询某两个地点之间的最短路径
|
|
|
|
|
11、输出地图
|
|
|
|
|
*为有效地存储和处理数据,我们采用了图结构的数据结构。具体来说,我们使用邻接表存储每个站点及其相邻站点的信息,并使用哈希表存储站点名称和编号的映射关系。
|
|
|
|
|
*为了找出两点间最短路径,采用了Dijkstra算法,算法效率较高。
|
|
|
|
|
*项目的效果从整体来看运行流畅,可以为市民提供方便、快捷的地铁路线查询和导航服务。
|
|
|
|
|
*任务分工及工作量占比:(完成情况良好)
|
|
|
|
|
| 翟梅瑛 | 连桢钰 | 刘宇婷 | 李文菲 |
|
|
|
|
|
| ---- | ---- | ---- | ---- |
|
|
|
|
|
| 项目设计 | 代码创建 | 优化改进 | 项目测试 |
|
|
|
|
|
| 25% | 25% | 25% | 25% |
|
|
|
|
|
|
|
|
|
|
1. 系统分析
|
|
|
|
|
1.1 问题描述
|
|
|
|
|
选择北京地铁,建立地铁站点导航地图,设计一个城市地铁导航系统。根据任意指定的两个站点,能够计算出任意两个站点之间路径长度最短的站点导航,并给出换乘方案。
|
|
|
|
|
|
|
|
|
|
1.2 可行性分析
|
|
|
|
|
1.明确解决问题的关键:城市地铁导航系统主要解决的问题是用户在地铁出行过程中需要查询线路、站点等信息,以及如何计算最短路径、如何显示用户当前位置等问题。
|
|
|
|
|
2.确定核心数据结构:城市地铁导航系统的核心数据结构是图,将每个地铁站点看作一个节点,每条地铁线路看作一条有向边,通过节点之间的连接表示地铁线路的走向和路径。使用邻接表或邻接矩阵等数据结构来存储图结构。此外,还需要存储地铁站点的位置、经纬度、名称、所属线路等信息。
|
|
|
|
|
3.确定核心算法:城市地铁导航系统的核心算法是图论算法,主要包括 Dijkstra 算法、贝尔曼-福德算法和 A* 算法等,用于寻找从起点到终点最短路径。同时还需要对地图进行可视化说明,例如显示沿途经过的地铁站点、换乘点和线路等信息。
|
|
|
|
|
|
|
|
|
|
4.总体思路和方案:城市地铁导航系统的总体思路和方案如下:
|
|
|
|
|
|
|
|
|
|
(1)导入地铁数据,包括每个地铁站的名称、位置、经纬度、相邻地铁站之间的距离和所属地铁线路等信息;
|
|
|
|
|
(2)构建地铁线路图,使用图论算法对地铁网络进行建模和分析;
|
|
|
|
|
(3)寻找路径,用户输入起点站和终点站,程序使用图论算法寻找到两个站之间的一条最短路径;
|
|
|
|
|
(4)输出路径,程序将找到的最短路径在地图上用不同颜色的线段标记出来,给用户直观地展示从起点站到终点站沿途经过的所有地铁线路和换乘点;
|
|
|
|
|
(5)用户界面设计,为方便用户使用,需要设计一个简洁明了的用户界面,支持用户输入起点站和终点站,展示搜索到的最短路径和沿途经过的地铁线路等信息;
|
|
|
|
|
(6)其他功能,例如公交线路查询、建议路径提醒等增强用户体验的功能。
|
|
|
|
|
|
|
|
|
|
总的来说,城市地铁导航系统需要综合运用数据库、图论算法、用户界面设计等多种技术和工具,才能实现方便、快速、准确的地铁线路查询和导航功能。
|
|
|
|
|
1.3 需求分析
|
|
|
|
|
(1)输入和输出
|
|
|
|
|
输入:用户希望到达的地铁站、出发地铁站、换乘信息、线路信息等。
|
|
|
|
|
输出:给用户提供最优路径和换乘信息,告知用户需要哪些线路和站点,预计到达时间等。
|
|
|
|
|
(2)数据字典
|
|
|
|
|
站点 = 站名 + 站点编号 + 经纬度坐标 + 所属线路
|
|
|
|
|
线路 = 线路号 + 站点序列 + 导向信息 + 地铁车类型
|
|
|
|
|
路径 = 起点站 + 终点站 + 路径序列 + 总里程 + 总时间
|
|
|
|
|
(3)数据文件
|
|
|
|
|
需要读取的数据文件:包含站点和线路信息的文件,格式为csv格式,包含字段:站点编号、站名、线路号、经纬度坐标。
|
|
|
|
|
需要导出的数据文件:路径信息文件,格式为json格式,包含字段:起点站、终点站、路径序列、总里程、总时间。
|
|
|
|
|
(4)参数设定
|
|
|
|
|
用户可以通过系统提供的界面输入起点站和终点站信息,以及一些可选参数(如最短时间、最少换乘等)。
|
|
|
|
|
(5)路径规划功能
|
|
|
|
|
主要作用:根据用户提供的信息,计算最优路径并提供导向信息。
|
|
|
|
|
用户输入:起点站、终点站、可选参数(如最短时间、最少换乘等)。
|
|
|
|
|
系统输出:最优路径和换乘信息,告知用户需要哪些线路和站点,预计到达时间等。
|
|
|
|
|
(6)换乘查询功能
|
|
|
|
|
主要作用:查询某个线路的信息。
|
|
|
|
|
用户输入:线路号。
|
|
|
|
|
系统输出:该线路的信息,包括沿线站点和车站信息、导向信息等。
|
|
|
|
|
(7)地图展示功能
|
|
|
|
|
主要作用:在地图上展示各个站点和线路的位置和路线。
|
|
|
|
|
用户输入:无
|
|
|
|
|
系统输出:地铁线路和站点在地图上的显示,方便用户更直观地了解线路位置和路线。
|
|
|
|
|
2. 系统设计
|
|
|
|
|