更新时间: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集合 ArrayList<String> uids = 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();