Merge branch 'dev_robotaxi-d-app-module_2110_220915_2.11.0' into 'test_robotaxi-d-app-module_2110_220915_2.11.0.1'

[2.11.0 fix] bus司机端解决Map280版本到站密集问题, 只比对坐标前五位

See merge request zhjt/AndroidApp/MoGoEagleEye!282
This commit is contained in:
wangmingjun
2022-10-19 03:30:24 +00:00
2 changed files with 25 additions and 4 deletions

View File

@@ -56,6 +56,7 @@ import com.mogo.och.common.module.biz.provider.LoginService;
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
import com.mogo.och.common.module.utils.DateTimeUtil;
import com.mogo.och.common.module.utils.NumberFormatUtil;
import com.mogo.och.common.module.utils.PinYinUtil;
import com.mogo.och.common.module.utils.SoundPoolHelper;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
@@ -858,12 +859,16 @@ public class BusOrderModel {
//MAP 280 每隔100ms左右返回一次到站 导致在到达中间站后再次滑动出发后会有时间差,收到一次到站,出现问题
//此处比对 自驾告诉的到站站点坐标和本地应到站站点坐标, 一致时才能到站
if (data != null && data.getEndLocation() != null){
double latitude = data.getEndLocation().getLatitude(); //wgs
double longitude = data.getEndLocation().getLongitude();
String latitude = NumberFormatUtil.cutOutNumber(data.getEndLocation().getLatitude(),5); //wgs
String longitude = NumberFormatUtil.cutOutNumber(data.getEndLocation().getLongitude(),5);
int arrivedStationIndex = backgroundCurrentStationIndex + 1;
BusStationBean arriveStation = stationList.get(arrivedStationIndex);
if (Double.doubleToLongBits(latitude) != Double.doubleToLongBits(arriveStation.getLat())
|| Double.doubleToLongBits(longitude) != Double.doubleToLongBits(arriveStation.getLon())){
String arriveLat = NumberFormatUtil.cutOutNumber(arriveStation.getLat(),5);
String arriveLon = NumberFormatUtil.cutOutNumber(arriveStation.getLon(),5);
if (!latitude.equals(arriveLat) || !longitude.equals(arriveLon)){
CallerLogger.INSTANCE.e( M_BUS + TAG, "行程日志-到站拦截,到站坐标不一致" );
return;
}

View File

@@ -21,4 +21,20 @@ public class NumberFormatUtil {
}
return String.valueOf(num);
}
/**
* 截取小数点后cutNum位 不进行四舍五入
* @param num
* @param cutNum
* @return
*/
public static String cutOutNumber(double num,int cutNum){
try{
BigDecimal bg = new BigDecimal(num).setScale(cutNum, RoundingMode.DOWN);
return String.valueOf(bg.doubleValue());
}catch (Exception e){
}
return "";
}
}