使用百度API实现实时公交线路查询及列表显示

当外部输入公交线路号,点击查询按钮的时候,会在div上显示所有包含此公交线路号的列表,点击列表中的项,绘制其站点列表。

实现:

 

第一步:生成线路列表

第二步:列表项点击事件

与公交地图_按线路查询相同

参考:使用百度API实现实时公交线路查询及地图显示

 

第三步:列表项点击显示具体的线路列表的信息,包括车次,起始终点站名称,首末车事件,票价等。

使用的百度API:服务类中BusLineSearch类是公交线路搜索类,调用其getBusLine方法,其参数为busListItem类型,在方法的回调函数onGetBusLineComplete中返回类型为BusLine的公交信息。

这个地方比较关键,我们前面获得了BusListResult类型的公交列表结果,其有一个getBusListItem的方法,返回BusListItem类型的结果,表示获取某一个具体的公交列表中的对象。将这个对象传给getBusLine方法,在其回调函数onGetBusLineComplete中画地图列表。

在onGetBusLineComplete回调函数中参数为BusLine类型,其属性包括name,startTime,endTime,(缺少票价信息)

           对于BusLine,应该能够获取其公交线路-站点表 中的StopLine_ID,即线路中的站点ID,这个ID是唯一的,通过其访问后台,获取实时信息。

onGetBusLineComplete: function (busline) {
            //写线路的基本信息
            var index = busline.name.indexOf('(');
            var htmlTitle = busline.name.substring(0, index);

            $("#title").html(htmlTitle);

            var htmlPoints =
                '<div ><img >' + busline.name.substring(index + 1, busline.name.length - 1) + '</div>';

            var htmlTimes =
                '<div ">●</span><span>首班:' + busline.startTime
                + '</span><span>●</span><span>末班:' + busline.endTime +
                '</span><span>票价:2元</span></div>';

            $.ajax({
                url: 'http://xx.xxx.xxx.xxx/busStationInfo',
//                data: {"SL_id":sl_id},
                type: 'get',
                datatype: 'json',
                async: 'false',
                success: function (json) {
                    //获取实时信息
                }
            });
//画线路列表
}

第四步:列表项点击显示具体的线路列表的信息,使用idangerous.swiper.js

//需要来画地图列表了
            var stations = busline.AB;
            var html = [];
            for (var i in stations) {
                stationArr[i] = stations[i].name;
                if (stationName==null) {
                    if (i == 0) {
                        html.push('<div class="swiper-slide"><img src="img/icons-pic-select.png"' +
                            ' onclick="divClick(this)" alt=""><div class="app-title" style="color:#ff8d30">' +
                            stations[i].name + '</div></div>');
                    } else {
                        html.push('<div class="swiper-slide"><img src="img/icons-pic.png"  onclick="divClick(this)" alt=""><div class="app-title">' +
                            stations[i].name + '</div></div>');
                    }
                } else {
					//之后stationName要换成line_stop_id 需要保证其唯一性
                    if (stations[i].name == stationName) {
                        html.push('<div class="swiper-slide"><img src="img/icons-pic-select.png"' +
                            ' onclick="divClick(this)" alt=""><div class="app-title" style="color:#ff8d30">' +
                            stations[i].name + '</div></div>');
                    } else {
                        html.push('<div class="swiper-slide"><img src="img/icons-pic.png"  onclick="divClick(this)" alt=""><div class="app-title">' +
                            stations[i].name + '</div></div>');
                    }
                }
            }

            $('.swiper-wrapper').html(html);
            $('.thumbs-cotnainer').each(function () {
                mySwiper = $(this).swiper({
                    slidesPerView: 'auto',
                    offsetPxBefore: 25,
                    offsetPxAfter: 10,
                    calculateHeight: true,
                    setWrapperSize: true,
                    freeMode: true
                })
            });
            getStopCount();
            mySwiper.swipeTo(stopCount, 500, false);

其点击事件divClick通过ajax获取实时信息

最终效果图

源代码参考:https://gitee.com/constfafa/baidumap_demo

  • 6
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
实现地图API公交线路查询查询公交车还有几站的功能,可以使用百度地图API或高德地图API。 1. 百度地图API公交线路查询: 1.1 在百度地图开放平台注册账号,并创建应用,获取AK(访问密钥)。 1.2 在应用中添加地图SDK,并在代码中引入百度地图SDK。 1.3 使用百度地图API提供的公交线路查询接口,例如: ``` http://api.map.baidu.com/directionlite/v1/transit?origin=31.22967,121.4762&destination=31.237176,121.50145&ak=YOUR_AK ``` 其中,origin和destination为起点和终点坐标,ak为访问密钥。 1.4 解析API返回的JSON数据,获取公交线路信息并显示在地图上。 2. 高德地图API公交线路查询: 2.1 在高德开放平台注册账号,并创建应用,获取key(访问密钥)。 2.2 在应用中添加地图SDK,并在代码中引入高德地图SDK。 2.3 使用高德地图API提供的公交线路查询接口,例如: ``` https://restapi.amap.com/v3/direction/transit/integrated?key=YOUR_KEY&origin=121.491,31.233&destination=121.4244,31.227&city=上海市 ``` 其中,key为访问密钥,origin和destination为起点和终点坐标,city为城市名称。 2.4 解析API返回的JSON数据,获取公交线路信息并显示在地图上。 3. 查询公交车还有几站的功能: 3.1 使用定位功能获取用户当前位置。 3.2 使用地图API提供的公交车位置查询接口,例如: ``` http://api.map.baidu.com/telematics/v3/bus/position?location=上海&ak=YOUR_AK ``` 其中,location为城市名称,ak为访问密钥。 3.3 解析API返回的JSON数据,获取公交车位置信息。 3.4 根据公交车位置和用户当前位置计算距离和还有几站的信息,并显示在界面上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值