公司做了个项目用到了高德好多的功能,最近没什么事总结一下,有一个功能是实现线路回放的,相信好多软件也会需要的此功能,所以亲情奉献一下思路和代码。
1,得到接口返回的坐标点,因为是GPS点还需要进行GPS的转换,才能将线准确的画在道路上,将得到的点存在 List<LatLng> locationList;数组中,之所以List的泛型是LatLng的是为了方便画线时直接用。
解析数据里的格式(我的是JSON解析)
JSONObject data=array.getJSONObject(i);
GeoPoint point=CoordinateConvert.fromGpsToAMap(data.getDouble("lat"),data.getDouble("lon"));
int x=point.getLatitudeE6();
int y=point.getLongitudeE6();
double x1 = ((double)x)/1000000;
double y1 = ((double) y) / 1000000;
LatLng lat=new LatLng(x1,y1);
locationList.add(lat);
2,将得到的点画成线
/**
* 在地图上画线
*/
public void setUpMap(List<LatLng> list){
if(list.size()>1){
PolylineOptions polt=new PolylineOptions();
for(int i=0;i<list.size();i++){
polt.add(list.get(i));
}
polt.width(5).geodesic(true).color(Color.GREEN);
aMap.addPolyline(polt);
}else{
Toast.makeText(this,"没有移动轨迹", 500).show();
}
}