资讯专栏INFORMATION COLUMN

使用百度地图API来完成交大校园巴士时刻表

ningwang / 1553人阅读

摘要:完成这个应用的主要步骤申请百度地图访问权限添加校园巴士车站绘制校园巴士路径弹出校园巴士时刻表申请百度地图访问权限百度地图免费对外开放。

  

本文最初发布于我的个人博客:Jerry的乐园

交大的校园巴士时刻表都只能在车站的站牌上查看。这对于需要出行的学生来说非常不方便,无法合理做好出行的安排。为了解决这个问题,我和同一个套件的两位同学一起完成了这个简单的app。这篇博客将简要介绍这个web应用是如何实现的。以下是效果图,实际的效果请到http://zry656565.github.io/SJTU-Bus查看。

完成这个应用的主要步骤:

申请百度地图API访问权限

添加校园巴士车站

绘制校园巴士路径

弹出校园巴士时刻表

申请百度地图API访问权限
  

百度地图JavaScript API免费对外开放。自v1.5版本起,您需先申请密钥(ak)才可使用,接口(除发送短信功能外)无使用次数限制。

因此我们需要先申请密钥,过程非常简单,几步就完成,在此就不多赘述了。申请完毕你就得到了属于自己的ak,接下来就可以建立如下的hello world网页了哦!别忘了把ak=您的密钥这部分改称你申请好的密钥。




    
    
    
    
    地图展示


    
添加校园巴士车站

首先本应用所有的数据都存储在一个data.json文件中,其中校园巴士车站存储的数据结构如下。数组中每一个子数组代表一个车站,子数组的三个元素分别代表站点名和经纬度。

{
    "stopList":[
        ["东川路地铁站", 121.426814, 31.023853],
        ["菁菁堂", 121.436534, 31.02475],
        ["校医院", 121.439911, 31.025764],
        ["东上院", 121.445463, 31.028007],
        ["东中院", 121.444457, 31.030127],
        ["新图书馆", 121.443954, 31.03155],
        ["行政B楼", 121.447601, 31.032742],
        ["电信学院", 121.448751, 31.03155],
        ["凯旋门", 121.452308, 31.029431]
    ]
}

在设计好了上面的数据结构后,添加车站就非常容易了:

for (var i = 0; i < stopList.length; i++) {
    var point = new BMap.Point(stopList[i][1], stopList[i][2]);
    var marker = new BMap.Marker(point);
    var label = new BMap.Label(stopList[i][0],{offset:new BMap.Size(20,-10)});
    marker.setLabel(label);
    map.addOverlay(marker);
}
绘制校园巴士路径

校园巴士行车路径存储的数据结构如下,就是由一堆点的经纬度构成的。

{
    "lineList": [
        [121.436534, 31.02475],
        [121.439911, 31.025764],
        [121.445535, 31.027412],
        [121.445301, 31.027984],
        [121.444331, 31.030104],
        [121.443774, 31.031605],
        [121.448373, 31.033121],
        [121.448319, 31.032285]
    ]
}

在设计好了上面的数据结构后,依样画葫芦,我们就能得到想要的路径了:

//绘制路线
var pointArr = [];
for (var i = 0; i < lineList.length; i++) {
    pointArr.push(new BMap.Point(lineList[i][0], lineList[i][1]));
}
var polyline = new BMap.Polyline(pointArr, {strokeColor:"blue", strokeWeight:5, strokeOpacity:0.5});
map.addOverlay(polyline);
弹出校园巴士时刻表

校园巴士行车时刻表存储的数据结构如下,就是由一堆点的经纬度构成的。

{
    "stopTime":{
        "东川路地铁站": {
            "direct1": "07:24 07:39 07:54 08:09 17:03 17:28 17:58 18:43 19:28 20:28",
            "festival_direct1": "8:24 16:58 17:43 18:28",
        },
        "菁菁堂": {
            "direct1": "07:30 07:45 08:00 08:15 08:25 08:40 09:00 09:20 09:40 10:00",
            "direct2": "08:30 08:50 09:10 09:30 10:00 10:30 11:00 11:30 12:30 13:30",
            "festival_direct1": "08:30 09:30 10:30 11:30",
            "festival_direct2": "09:00 10:00 11:00 12:00"
        },
        "校医院": {
            "direct1": "07:30 07:45 08:00 08:15 08:25 08:40 09:00 09:20 09:40 10:00",
            "direct2": "08:50 09:10 09:30 09:50 10:20 10:50 11:20 11:50 12:50 13:50",
            "festival_direct1": "08:30 09:30 10:30 11:30",
            "festival_direct2": "09:20 10:20 11:20 12:20"
        }
    }
}

在设计好了上面的数据结构后,对之前添加巴士站点的代码稍加修改以下就搞定了,具体要添加的内容还比较多,可以移步源码查看。

还有哪些工作?

东川路站的经纬度需要修正

支持小屏手机的访问

有兴趣的同学可以fork我的项目

反馈与建议

本应用是由几位交大的同学利用课余时间制作,有什么问题可以及时反馈给我们。

所有的反馈建议请在issue版提交

或者直接在本博客留言

参考资料

关于调整校园巴士运行线路及运行时刻的通知

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/49525.html

相关文章

  • 使用百度地图API完成交大校园巴士刻表

    摘要:完成这个应用的主要步骤申请百度地图访问权限添加校园巴士车站绘制校园巴士路径弹出校园巴士时刻表申请百度地图访问权限百度地图免费对外开放。 本文最初发布于我的个人博客:Jerry的乐园 交大的校园巴士时刻表都只能在车站的站牌上查看。这对于需要出行的学生来说非常不方便,无法合理做好出行的安排。为了解决这个问题,我和同一个套件的两位同学一起完成了这个简单的app。这篇博客将简要介绍这...

    bang590 评论0 收藏0
  • 使用百度地图API完成交大校园巴士刻表

    摘要:完成这个应用的主要步骤申请百度地图访问权限添加校园巴士车站绘制校园巴士路径弹出校园巴士时刻表申请百度地图访问权限百度地图免费对外开放。 本文最初发布于我的个人博客:Jerry的乐园 交大的校园巴士时刻表都只能在车站的站牌上查看。这对于需要出行的学生来说非常不方便,无法合理做好出行的安排。为了解决这个问题,我和同一个套件的两位同学一起完成了这个简单的app。这篇博客将简要介绍这...

    AJie 评论0 收藏0
  • 百度地图开发实例番外篇--实用方法(持续更新)

    摘要:一前言在使用百度地图开发的过程中,查阅百度地图官网基本上就能满足开发的需求,但是有时候需要设置一些东西,很难在官网上查阅到相关的方法技巧。希望百度地图能够越来越强大,这样开发者就可以愉快的开发了 一 前言 在使用百度地图开发的过程中,查阅百度地图官网demo基本上就能满足开发的需求,但是有时候需要设置一些东西,很难在官网上查阅到相关的方法技巧。笔者特意把开发过程中遇到的一些疑难杂症和解...

    CocoaChina 评论0 收藏0
  • 从国内跳槽至新加坡工作的经验分享

    摘要:从年月日起新加坡将给予符合条件的中国公民有效期长达年的多次入境签证。而与家人或小组团体同游新加坡的人,能够以团体方式提交入境资料。工作或创业准证家属,可通过公司向人力部申请新加坡工作的凭证,批准后,可直接工作不占用公司配额。 showImg(https://segmentfault.com/img/remote/1460000016386130?w=1999&h=1115); 前言 记...

    Chao 评论0 收藏0
  • Web端嵌入百度地图实现流程

    摘要:百度地图这么大的一个平台,应该会给开发者提供。上网搜索一番,在百度地图开发实例番外篇实用方法持续更新中找到了解决方法,原来是需要针对进行单独配置为百度地图设置规则配置完成之后不报错了,但是在浏览器中查看控制台输出,会发现依然报错。 实现流程 按顺序讲一下自己的实现过程,中间踩了好几个坑,感谢 Google,感谢 SegmentFault,让我成功出坑。 百度地图这么大的一个平台,应该...

    Coly 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<