Android开发经验谈Android开发Android技术知识

Android高德之旅(16)交通态势查询

2017-11-13  本文已影响197人  大公爵

废话

交通态势信息是由当前时刻和未来某一时刻的交通状况信息构成,目前该功能仅对当前时刻对交通状况(路况)信息进行了透出。这篇有点尴尬的是,实在不好用地图来演示,所以就简单地打印一下信息,知道有哪些数据就可以了。

看代码

TrafficSearch trafficSearch = new TrafficSearch(this);
trafficSearch.setTrafficSearchListener(this);
RoadTrafficQuery roadTrafficQuery = new RoadTrafficQuery(
        "将台路", //道路名称
        "110000", //城市编号
        TrafficSearch.ROAD_LEVEL_NORMAL_WAY //道路级别
);
trafficSearch.loadTrafficByRoadAsyn(roadTrafficQuery);

道路等级

查询结果回调比较复杂,包含很多数据。

@Override
public void onRoadTrafficSearched(TrafficStatusResult result, int i) {
    //返回路况综合情况描述
    String description = result.getDescription();

    //包含对路况的评价,拥堵占比等
    TrafficStatusEvaluation evaluation = result.getEvaluation();

    //道路列表,包含每条道路坐标点集以及各道路路况信息
    List<TrafficStatusInfo> roads = result.getRoads();
}

先来看第一个,这个比较简单

将台路:从京密路到芳园西路严重拥堵,首信大厦附近自东向西行驶缓慢。

第二个是路况分析,反映出道路通行情况,拥堵、畅通等部分的占比

行驶缓慢, 堵车=6.65%, 拥堵=28.21%, 加快=59.31%, 状态=3, 未知=5.83%

第三个是具体分析每条道路的通行状况,细化到各个方向的通行速度

将台路, lcodes=8532,8533, 方向=从京密路到芳园西路, 速度=10.0, angle=319, 状态=3
将台路, lcodes=8534, 方向=从芳园西路到酒仙桥路, 速度=10.0, angle=319, 状态=2
将台路, lcodes=8535,8775, 方向=从酒仙桥路到东风南路, 速度=25.0, angle=311, 状态=1
将台路, lcodes=8536, 方向=从东风南路到星火东路, 速度=0.0, angle=290, 状态=0
将台路, lcodes=-8536, 方向=星火东路附近, 速度=0.0, angle=0, 状态=0
将台路, lcodes=-8775,-8535, 方向=从星火东路到酒仙桥东路, 速度=25.0, angle=113, 状态=1
将台路, lcodes=-8534,-8533,-8532, 方向=从酒仙桥东路到京密路, 速度=15.0, angle=153, 状态=2

来看下整体的数据解析

@Override
public void onRoadTrafficSearched(TrafficStatusResult result, int i) {
    //返回路况综合情况描述
    String description = result.getDescription();

    //包含对路况的评价,拥堵占比等
    TrafficStatusEvaluation evaluation = result.getEvaluation();
    String description1 = evaluation.getDescription();
    String blocked = evaluation.getBlocked();
    String congested = evaluation.getCongested();
    String expedite = evaluation.getExpedite();
    String status = evaluation.getStatus();
    String unknown = evaluation.getUnknown();

    //道路列表,包含道路坐标点集以及各道路路况信息
    List<TrafficStatusInfo> roads = result.getRoads();
    for (TrafficStatusInfo road : roads) {
        String status1 = road.getStatus();
        int angle = road.getAngle();
        List<LatLonPoint> coordinates = road.getCoordinates();
        String direction = road.getDirection();
        String lcodes = road.getLcodes();
        String name = road.getName();
        float speed = road.getSpeed();
    }
}

之前说了,这篇实在不知道怎么在地图上演示,就简单看下信息吧。


总结

从下篇开始,我们要降到很重要的一部分,叫出行路线规划。本期节目就到这里,感谢大家收看,我们下期再见~

上一篇下一篇

猜你喜欢

热点阅读