private void changeRider(Object data) {
HashMap<String, String> hashMap = (HashMap<String, String>) data;
String type = hashMap.get("type");
String lat = hashMap.get(Constant.LAT);
String lng = hashMap.get(Constant.LNG);
//获取经纬度信息,定位骑手的位置
LatLng currentPos=new LatLng(Double.valueOf(lat),Double.valueOf(lng));
//将经纬度添加在经纬度集合中
riderPosList.add(currentPos);
//设置骑手的所在位置
markerRider.setPosition(currentPos);
//地图定位焦点
aMap.moveCamera(CameraUpdateFactory.changeLatLng(currentPos));
String info="";
DecimalFormat format=new DecimalFormat(".00");
switch (type) {
case OrderObserver.ORDERTYPE_DISTRIBUTION_RIDER_TAKE_MEAL:
// 取餐,距离卖家的距离
float ds = AMapUtils.calculateLineDistance(currentPos, latlngSeller);
info="距离商家"+format.format(ds)+"米";
break;
case OrderObserver.ORDERTYPE_DISTRIBUTION_RIDER_GIVE_MEAL:
// 送餐,距离买家的距离
float db = AMapUtils.calculateLineDistance(currentPos, latlngBuyer);
info="距离买家"+format.format(db)+"米";
break;
}
markerRider.setSnippet(info);
markerRider.showInfoWindow();
//参数一:当前所处位置
//参数二:历史的点
drawLine(currentPos,riderPosList.get(riderPosList.size()-2));
}
private void drawLine(LatLng currentPos, LatLng pos) {
aMap.addPolyline(new PolylineOptions().add(pos,currentPos).width(2).color(Color.GREEN));
}
private void initRider(Object object) {
riderPosList.clear();
//显示骑手,屏幕上添加一张骑手图片
LatLng riderlatLng = new LatLng(doublelat, doublelng);
//地图缩放级别 参数值越大,能看到的区域就越少,但是越详细
aMap.moveCamera(CameraUpdateFactory.zoomTo(17));
//创建一个在地图上需要显示的点的对象
riderMarker = aMap.addMarker(new MarkerOptions().position(riderlatLng));
//给要显示的点准备图片
BitmapDescriptor descriptor = BitmapDescriptorFactory.fromBitmap(BitmapFactory
.decodeResource(getResources(), R.drawable.order_rider_icon));
//将图片添加在点上
riderMarker.setIcon(descriptor);
//骑手接单描述内容
riderMarker.setSnippet("骑手已接单");
//显示骑手
riderMarker.showInfoWindow();
//将骑手设置在地图的中心点
aMap.moveCamera(CameraUpdateFactory.changeLatLng(riderlatLng));
//添加骑手登场开始位置
riderPosList.add(riderlatLng);
}
private void initMap() {
map.setVisibility(View.VISIBLE);
aMap.moveCamera(CameraUpdateFactory.zoomTo(13));
// 添加买家marker
latlngBuyer = new LatLng(40.100519, 116.365828);
//指定地图的中心点为买家
aMap.moveCamera(CameraUpdateFactory.changeLatLng(latlngBuyer));
//创建一个在地图上需要显示的点的对象
Marker marker = aMap.addMarker(new MarkerOptions().position(latlngBuyer));
//给要显示的点准备图片
BitmapDescriptor descriptor = BitmapDescriptorFactory.fromBitmap(BitmapFactory
.decodeResource(getResources(), R.drawable.order_buyer_icon));
//将图片添加在点上
marker.setIcon(descriptor);
// 添加卖家marker
latlngSeller = new LatLng(40.060244, 116.343513);
//创建一个在地图上需要显示的点的对象
Marker marker1 = aMap.addMarker(new MarkerOptions().position(latlngSeller));
//给要显示的点准备图片
BitmapDescriptor descriptor1 = BitmapDescriptorFactory.fromBitmap(BitmapFactory
.decodeResource(getResources(), R.drawable.order_seller_icon));
//将图片添加在点上
marker1.setIcon(descriptor1);
}
高德地图的画图表,加文字,画线,测距
最新推荐文章于 2023-06-12 17:33:40 发布