项目中用到一个功能,对车辆运行情况监控,在地图上显示。
因此需要在地图上绘制一条线路,显示每个站点的车站信息,以及当前车辆在线路上的运行情况。
类似高德地图demo中公交线路查询的样式
查了下文档,在BusLIneOverlay中看到这么一段话
公交线路图层类。在高德地图API里,如果要显示公交线路,可以用此类来创建公交线路图层。如不满足需求,也可以自己创建自定义的公交线路图层。
看来应该需要自定义实现。除了这个还有BusRouteOverlay,貌似这个是给出起始点坐标然后联网规划用的吧,没怎么看。还是用BusLineOverlay,因为看了下代码貌似需要提供线路坐标和车站坐标,和我需求比较相近。
看了下BusLineOverlay使用方法,基本上初始化之后,调用 addToMap()方法即可。BusLineOverlay所需参数如下:
public BusLineOverlay(Context context, AMap amap, BusLineItem busLineItem)
context和amap目前都有了,现在主要需要创建BusLineItem ,这个类在AMap_Search_V3.2.1_20160308.jar这个包内,如果没有导入,需要导入下。
然后BusLineItem中主要内容(部分)如下。。。。
public class BusLineItem implements Parcelable {
private float a;
private String b;
private String c;
private String d;
private List<LatLonPoint> e = new ArrayList();
private List<LatLonPoint> f = new ArrayList();
private String g;
private String h;
private String i;
private Date j;
private Date k;
private String l;
private float m;
private float n;
private List<BusStationItem> o = new ArrayList();
public static final Creator<BusLineItem> CREATOR = new a();
public BusLineItem() {
}
这些abcde需要结合后边提供的Getter和Setter方法才能知道大概意思,然后我调试了官方demo抓取了一些数据研究了下,整理如下:
原始 | 含义 | 内容样例 |
---|---|---|
private float a; | 公交线路全程里程 | a = 20.00017 |
private String b; | 线路名称 | b = “641路(金盏村–和平西桥)” |
private String c; | 线路类型 | c = “普通公交” |
private String d; | 城市代码 | d = “010” |
private List e = new ArrayList(); | 公交线路的沿途坐标,包含首发站和终点站坐标。 | e = {ArrayList@4457} size = 283 |
private List f = new ArrayList(); | 公交线路外包矩形的左下与右上顶点坐标。 | f = {ArrayList@4458} size = 2 |