查看运单显示车辆轨迹

This commit is contained in:
lijia 2024-09-23 17:55:49 +08:00
parent 55372ae79c
commit 9072be42ed
6 changed files with 230 additions and 8 deletions

View File

@ -84,7 +84,7 @@ android {
JPUSH_APPKEY : "fba6f55621c670d8c1fe9191",
//.
JPUSH_CHANNEL: "developer-n"]
buildConfigField("String", "BASE_URL", "\"http://app.test.dahehuoyun.com/api/\"")
buildConfigField("String", "BASE_URL", "\"https://app.test.dahehuoyun.com/api/\"")
buildConfigField "boolean", "isTest", "true"
//APP名称androidMainfest中引用
resValue "string", "appName", "货主端测试"

View File

@ -0,0 +1,130 @@
package com.oneclouds.cargo.bean;
import java.util.ArrayList;
/**
* @ClassName OrderRouterBean
* @Author john
* @Date 2024/9/23 16:28
* @Description TODO
*/
public class OrderRouterBean {
private int code;
private DataDTO data;
private String msg;
private int res;
private boolean success;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public DataDTO getData() {
return data;
}
public void setData(DataDTO data) {
this.data = data;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public int getRes() {
return res;
}
public void setRes(int res) {
this.res = res;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public static class DataDTO {
private String endLat;
private String endLon;
private String startLat;
private String startLon;
private ArrayList<PositionDao> vo;
public ArrayList<PositionDao> getVo() {
return vo;
}
public void setVo(ArrayList<PositionDao> vo) {
this.vo = vo;
}
public String getEndLat() {
return endLat;
}
public void setEndLat(String endLat) {
this.endLat = endLat;
}
public String getEndLon() {
return endLon;
}
public void setEndLon(String endLon) {
this.endLon = endLon;
}
public String getStartLat() {
return startLat;
}
public void setStartLat(String startLat) {
this.startLat = startLat;
}
public String getStartLon() {
return startLon;
}
public void setStartLon(String startLon) {
this.startLon = startLon;
}
public static class PositionDao{
private String name;
private ArrayList<ArrayList<String>> path;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ArrayList<ArrayList<String>> getPath() {
return path;
}
public void setPath(ArrayList<ArrayList<String>> path) {
this.path = path;
}
}
}
}

View File

@ -82,6 +82,19 @@ public class WaybillRequest {
Request re = OkHttpUtil.posts(new OkDate(UrlManager.getWaybillGetExecuteWatbill(), "post", MapUtil.mapJson(map)),getToken(con),con);
RequestTest.test(1,WAYBILL_GET_EXECUTE_WATBILL,re,con,hd);
}
/**
* 获取运单车辆 司机轨迹
* @param waybillId
*/
public void getCarRouter(int waybillId){
Map<String,Object> map=new HashMap<>();
// map.put("waybillId","2535");
// map.put("waybillId",waybillId);
Request re = OkHttpUtil.posts(new OkDate(UrlManager.getCarRouter()+"?waybillId="+waybillId, "post", MapUtil.mapJson(map)),getToken(con),con);
RequestTest.test(1,"CAR_ROUTER",re,con,hd);
}
//货源详情
public void orderDetailAll(int id){
Map<String,Object> map=new HashMap<>();

View File

@ -68,7 +68,7 @@ public class UrlManager {
//地址信息保存
private static final String ADDRESS_SAVE = "/app/shipper/address/save";
private static final String CAR_LOCAION = "waybill/getCarPositioning?carNumber=";
// private static final String COMPANY_SAVE = "/app/shipper/auth/companyInfo";
// private static final String COMPANY_SAVE = "/app/shipper/auth/companyInfo";
private static final String COMPANY_SAVE = "/shipper/web/auth/authInfo";
/*--货主认证--*/
@ -102,6 +102,7 @@ public class UrlManager {
private static final String WAYBILL_EVALUATION_V3 = "/app/shipper/waybill/evaluationV3";
//运单详情
private static final String WAYBILL_GET_EXECUTE_WATBILL = "/app/shipper/waybill/getExecuteWaybill";
private static final String CAR_ROUTER = "waybill/getLoc";
//获取双轨迹
private static final String WAYBILL_GET_LOC = "/app/shipper/waybill/getLoc";
//货源详情
@ -388,6 +389,10 @@ public class UrlManager {
return BASE_URL + WAYBILL_GET_EXECUTE_WATBILL;
}
public static String getCarRouter() {
return BASE_URL + CAR_ROUTER;
}
public static String getWaybillGetLoc() {
return BASE_URL + WAYBILL_GET_LOC;
}

View File

@ -41,5 +41,8 @@ public interface Api {
@POST(BASE_URL+"waybill/getCarPositioning")
Observable<CommonResponseBean<CarLocaBean>> getCarPositioning(@Query("carNumber") String carNumber);
// Observable<CommonResponseBean<CarLocaBean>> getCarPositioning(@Body CarLocaBean carLocaBean);
@POST(BASE_URL+"waybill/getLoc")
Observable<CommonResponseBean<CarLocaBean>> getCarRouter(@Query("waybillId") String waybillId);
}

View File

@ -1,6 +1,7 @@
package com.oneclouds.cargo.ui.home;
import android.content.Intent;
import android.graphics.Color;
import android.location.Location;
import android.os.Bundle;
import android.os.Message;
@ -46,10 +47,14 @@ import com.oneclouds.cargo.R;
import com.oneclouds.cargo.bean.BaseBean;
import com.oneclouds.cargo.bean.EvaluateBean;
import com.oneclouds.cargo.bean.OrderDetailsBean;
import com.oneclouds.cargo.bean.OrderRouterBean;
import com.oneclouds.cargo.bean.UserBean;
import com.oneclouds.cargo.request.AddressRequest;
import com.oneclouds.cargo.request.WaybillRequest;
import com.oneclouds.cargo.request.bean.CarLocaBean;
import com.oneclouds.cargo.request.net.BaseObserver;
import com.oneclouds.cargo.request.net.DataManager;
import com.oneclouds.cargo.request.net.RxHttpCallBack;
import com.oneclouds.cargo.ui.parts.TypeParts;
import com.oneclouds.cargo.util.SPUtil;
import com.oneclouds.cargo.util.StringUtil;
@ -94,6 +99,7 @@ public class OrderDetailsActivity extends BaseActivity {
//是否处于展开状态
private boolean key = false;
private int id = 0;
private ArrayList<LatLng> carPoints = new ArrayList<>();
@Override
public void msgMethod(Message m) {
@ -138,15 +144,15 @@ public class OrderDetailsActivity extends BaseActivity {
Type type = new TypeToken<CommonResponseBean<CarLocaBean>>() {
}.getType();
CommonResponseBean<CarLocaBean> getcarlocation = gson.fromJson(CacheGroup.cacheList.get("getcarlocation"), type);
if (getcarlocation!=null&& getcarlocation.getData()!=null){
if (getcarlocation != null && getcarlocation.getData() != null) {
CarLocaBean data = getcarlocation.getData();
double lat =new BigDecimal(data.getLat()).setScale(5, RoundingMode.HALF_UP)
double lat = new BigDecimal(data.getLat()).setScale(5, RoundingMode.HALF_UP)
.divide(new BigDecimal(600000), RoundingMode.HALF_UP).doubleValue();
double lon =new BigDecimal(data.getLon()).setScale(5, RoundingMode.HALF_UP)
double lon = new BigDecimal(data.getLon()).setScale(5, RoundingMode.HALF_UP)
.divide(new BigDecimal(600000), RoundingMode.HALF_UP).doubleValue();
//gws84转高德经纬度
CoordinateConverter converter =new CoordinateConverter(con);
CoordinateConverter converter = new CoordinateConverter(con);
converter.from(CoordinateConverter.CoordType.GPS);
converter.coord(new LatLng(lat, lon));
LatLng desLatLng = converter.convert();
@ -156,6 +162,61 @@ public class OrderDetailsActivity extends BaseActivity {
aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(desLatLng, 6));
}
}
//车辆轨迹
if (CacheGroup.cacheList.get("CAR_ROUTER") != null) {
OrderRouterBean bb = gson.fromJson(CacheGroup.cacheList.get("CAR_ROUTER"), OrderRouterBean.class);
if (bb.getCode() == 200) {
new Thread(() -> {
carPoints.clear();
ArrayList<ArrayList<String>> path = bb.getData().getVo().get(1).getPath();
for (int i = 0; i < path.size(); i++) {
if (path.get(i).size() > 1) {
double lon = Double.parseDouble(path.get(i).get(0));
double lat = Double.parseDouble(path.get(i).get(1));
//gws84转高德经纬度
// CoordinateConverter converter = new CoordinateConverter(con);
// converter.from(CoordinateConverter.CoordType.GPS);
// converter.coord(new LatLng(lat, lon));
// LatLng convert = converter.convert();
// carPoints.add(convert);
carPoints.add(new LatLng(lat, lon));
}
}
runOnUiThread(() -> {
//绘制起始位置和目的地marker
aMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.qi))
.position(new LatLng(Double.parseDouble(bb.getData().getStartLat()),
Double.parseDouble(bb.getData().getStartLon()))));
aMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.zhong))
.position(new LatLng(Double.parseDouble(bb.getData().getEndLat()),
Double.parseDouble(bb.getData().getEndLon()))));
aMap.addPolyline((new PolylineOptions())
.addAll(carPoints)
//线的宽度
.width(10)
.color(getResources().getColor(R.color.teal_200)));
LatLngBounds.Builder builder = LatLngBounds.builder();
for (int i = 0; i < carPoints.size(); i++) {
builder.include(carPoints.get(i));
}
//显示全部marker,第二个参数是四周留空宽度
aMap.moveCamera(CameraUpdateFactory.newLatLngBoundsRect(builder.build(), 100, 100, 0, 400));
});
}).start();
} else {
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove("CAR_ROUTER");
}
break;
case 15:
break;
@ -191,7 +252,17 @@ public class OrderDetailsActivity extends BaseActivity {
ub = gson.fromJson(userdata, UserBean.class);
}
addressRequest = new AddressRequest(con, hd);
// DataManager.getInstance().getCarRouter("2535")
// .compose(DataManager.setThread())
// .subscribe(new BaseObserver(con, new RxHttpCallBack<CommonResponseBean<CarLocaBean>>() {
// @Override
// public void onSuccess(CommonResponseBean<CommonResponseBean<CarLocaBean>> t) {
// super.onSuccess(t);
// }
// }));
wr = new WaybillRequest(con, hd);
wr.getCarRouter(id);
wr.orderDetail(id);
wr.orderEvaluate(id);
}
@ -201,7 +272,7 @@ public class OrderDetailsActivity extends BaseActivity {
public void initView(Object obj) {
super.initView(obj);
String waybillStatus = sob.getData().getWaybillStatus();
if (waybillStatus.equals("已装货")||waybillStatus.equals("待调度")){
if (waybillStatus.equals("已装货") || waybillStatus.equals("待调度")) {
addressRequest.getCarLoca(sob.getData().getCarNumber());
}
// addressRequest.getCarLoca("冀AAH822");
@ -325,7 +396,7 @@ public class OrderDetailsActivity extends BaseActivity {
initZX(upkey, v, position, o, 1);
}
});
initSearch();
// initSearch();
}
public void initZX(boolean key, View v, int position, Object o, int type) {