校园电子地图 地图基本浏览模块 搜索模块 面积、距离测量模块 最短路径规划模块
图1系统功能模块图
4.2 详细设计
1)系统不涉及权限问题,所有浏览者都可以使用系统进行校园地图的浏览、搜索、查看。对于地图放大、缩小、拖动,流程基本一样。打开系统后即可进行操作。
地图基本浏览模块流程图如图2所示:
开始 地图放大、缩小、拖动 否 是 清楚查询结果 结束 图2地图基本浏览模块流程图
2)对于地图搜索功能必须确定输入内容不为空时才继续查询,然后判断查询结果是否为空,不为空即查询成功。
搜索模块流程图如图3所示:
5
开始 是 搜索功能是否为空 否 搜索 否 搜索成功 是 结束 图3搜索模块流程图
3)面积测量、距离测量,对于两个功能设置开关状态参数,只有监听到允许后在底图上的测量操作才有效。
面积、距离测量模块流程图如图4所示:
开始 测量面积 测量距离 查看结果 查看结果 结束 图4面积、距离测量模块流程图
6
4)最短路径规划,由于监听的是鼠标右击,对于各个功能没有冲突,因此不设开关。仅对起始点进行判断,只有选择起点之后才能选择终点,在起始点都存在的情况下才能进行最短路径规划。
最短路径算法采用的是A*算法,A*(A-Star)算法是一种静态路网中求解最短路最有效的直接搜索算法。估计值与实际值越接近,估计函数取得就最好。公式表达式为:f(n)=g(n)+h(n)。其中f(n)是从起始点经由节点n到目标点的估价函数,g(n)是状态空间中从初始节点到n节点的实际代价,h(n)是从n到目标节点最佳路径的估计代价。
保证找到最短路径(最优解)的条件,关键在于估价函数h(n)的选取:估价值h(n)<=n到目标节点的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率低。但能得到最优解。并且如果h(n)=d(n),即距离估计h(n)等于最短距离,那么搜索将严格沿着最短路径进行, 此时的搜索效率是最高的。如果估价值>实际值,搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。
路径规划模块流程图如图5所示:
图5路径规划模块流程图
结束 最短路径规划 起始点都存在? 是 是否存在起点 是 选择终点 否 选择起点 否 开始 7
5 系统数据库设计
5.1 数据库概念设计
1)建筑物的属性主要包括:名称,面积,建筑物Id,几何中心纬度,几何中心经度,图片地址。 建筑物E-R图如图6所示:
图6建筑物E-R图
几何中心纬度 几何中心经度 建筑物 建筑物Id 图片地址 名称 面积 2)绿化带的属性主要包括:名称,面积,绿化带Id,几何中心纬度,几何中心经度,图片地址。 绿化带E-R图如图7所示:
名称
几何中心纬度 图片地址 绿化带 面积 绿化带Id
几何中心经度
图7绿化带E-R图
8
5.2 逻辑设计
1)Building表,主要字段:建筑物Id,建筑物名称,建筑物面积,图片地址,建筑物中心点纬度,建筑物中心点经度。
表3Building表
字段名 Id Name AREA Image_url Center_x Center_y 数据类型 long string long string double double 长度 10 10 10 50 10 10 是否为空 是 是 是 是 是 是 说明 建筑物Id 建筑物名称 建筑物面积 图片地址 建筑物中心点经度 建筑物中心点纬度 2)Green表,主要字段:绿化带Id,绿化带名称,绿化带面积,图片地址,绿化带中心点经度,绿化带中心点纬度。
表4绿化带表
字段名 Id Name AREA Image_url Center_x Center_y 数据类型 long string long string double double 长度 10 10 10 50 10 10 是否为空 是 是 是 是 是 是 说明 绿化带Id 绿化带名称 绿化带面积 图片地址 绿化带中心点经度 绿化带中心点纬度 6 结束语
到此,基于Google Map API的校园电子地图的需求分析、概要设计已经完成,详细设计也基本完成。通过这次论文设计,我了解并熟悉了需求分析和概要设计的基本做法,做到了与软件工程学科理论知识与实践的结合。同时我对这个校园电子地图的结构也有了更加清
9