更新时间:2023-05-15
实时公交功能简介
自7.5.8版本起增加实时公交功能,支持根据当前经纬度检索附近站台,线路,实时公交等信息,支持指定线路uid检索实时公交,支持指定站台uid检索实时公交,支持指定站台订阅上车提醒,指定站台订阅下车提醒功能。
注意:此功能为高级付费功能,如需测试使用,请先开通权限。
实时公交检索
实时公交检索共分为三个检索接口,分别为:附近实时公交检索、指定线路公交检索、指定站台公交检索。
注:开启查询之后默认开启定时查询(查询间隔时间根据接口返回的推荐刷新间隔定时查询),sdk内部不会做停止查询的逻辑,如需停止定时查询需调用stop接口(参考步骤4)。
以附近实时公交检索为例:
1创建实时公交检索结果监听器。
realtimebusdatalistener realtimebusdatalistener = new realtimebusdatalistener() { @override public void ongetrealtimenearbybusdatalistener(realtimenearbybusresult realtimenearbybusresult) { // 查询附近实时公交信息回调 } @override public void ongetrealtimebuslinedatalistener(realtimebuslineresult realtimebuslineresult) { // 查询指定线路uid实时公交信息回调 } @override public void ongetrealtimebusstationdatalistener(realtimebusstationinfolistresult realtimebusstationinfolistresult) { // 查询指定站点uid实时公交信息回调 } @override public void ongetlocationtimeout() { // 查询后5分钟没有更新实时位置,且没有调用停止接口回调 } };
2注册实时公交信息查询监听回调
realtimebusmanager.getinstance().registerrealtimebuslistener(realtimebusdatalistener);
3设置参数并发起实时公交检索
注:发起对应检索后sdk内部会根据返回实时公交的刷新时间延时2秒,轮询去查询相应的实时公交信息,在轮询检索过程中开发者须调用更新位置接口更新实时位置,如果大于5分钟未更新实时位置则回调ongetlocationtimeout(),待更新位置后会继续回调对应的查询结果回调。如开发者没有轮询查询的需求在查询1次拿到结果后可调用对应的销毁接口停止(参考步骤5)。
a. 发起附近实时公交检索
a. 发起附近实时公交检索
// 创建周边实时公交检索option realtimenearbybusoption realtimenearbybusoption = new realtimenearbybusoption(); // 设置城市id realtimenearbybusoption.setcityid(131); // 设置当前经纬度 realtimenearbybusoption.setlatlng(new latlng(40.057789,116.307403)); // 发起周边实时公交检索 realtimebusmanager.getinstance().realtimenearbybussearch(realtimenearbybusoption);
b. 发起指定线路实时公交检索
// 创建指定线路查询参数 realtimebuslineoption realtimebuslineoption = new realtimebuslineoption() .setcityid(131) // 城市id 示例中是北京 .setlatlng(latlng) // 当前经纬度信息 .setuid("7237aea108f3e266abf729bb"); // 指定线路uid // 发起指定线路id查询 realtimebusmanager.getinstance().realtimebuslinesearch(realtimebuslineoption);
c. 发起指定站台实时公交检索
支持同时检索多个站台实时公交
// 创建指定站台查询实时公交option realtimebusstationoption realtimebusstationoption = new realtimebusstationoption(); // 指定站台uid集合 arraylistuids = new arraylist<>(); uids.add("5abc231cf0e232f6adee7afe"); uids.add("72eec12ca949efbaa8f0cd93"); realtimebusstationoption.setstationuid(uids); // 设置指定站台uid集合 realtimebusstationoption.setlatlng(new latlng(40.057789,116.307403)); // 设置当前位置 realtimebusstationoption.setcityid(131); // 设置城市id 示例中是北京 // 发起指定站台uid检索 realtimebusmanager.getinstance().realtimestationsearch(realtimebusstationoption);
4更新实时位置
注:如果使用上下车提醒功能建议2秒更新一次当前位置
realtimebusmanager.getinstance().updatelocation(latlng);
5释放实时公交检索
a. 释放附近实时公交检索
b. 释放指定路线实时公交检索
c. 释放指定站台实时公交检索
realtimebusmanager.getinstance().destroyrealtimenearbybus();
b. 释放指定路线实时公交检索
realtimebusmanager.getinstance().destroyrealtimebusline();
c. 释放指定站台实时公交检索
realtimebusmanager.getinstance().destroyrealtimebusstation();