From b3960086e0c3a7bfe1f110c81ccdfcb4e4aacae2 Mon Sep 17 00:00:00 2001 From: lianglihui Date: Thu, 8 Jul 2021 20:59:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BD=91=E7=BA=A6=E8=BD=A6=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=9D=90=E6=A0=87=E4=B8=8D=E4=B8=80=E8=87=B4=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84=E8=B7=9D=E7=A6=BB=E8=AE=A1=E7=AE=97=E5=92=8C?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=A9=BE=E9=A9=B6=E4=B8=8D=E5=87=86=E7=A1=AE?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/taxi/MogoOCHTaxiModel.java | 53 +++++++++++-------- .../com/mogo/och/taxi/OCHOrderStatus.java | 2 +- .../mogo/och/taxi/OCHTaxiOrderResponse.java | 12 +++-- .../mogo/och/taxi/OCHTaxiOrderResponse2.java | 2 + .../com/mogo/och/taxi/ui/OCHTaxiFragment.java | 17 +++--- gradle.properties | 2 +- libraries/map-custom/map-version-update | 5 +- .../drawer/AdasRecognizedResultDrawer.java | 29 +++++----- 8 files changed, 71 insertions(+), 51 deletions(-) diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java index eadc1b4e44..9e7ea75247 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java @@ -137,9 +137,9 @@ class MogoOCHTaxiModel { // if ( NetworkUtils.isConnected( mContext ) ) { // restoreOrderInfo(); // } -// if ( NetworkUtils.isConnected( mContext ) ) { -// querryCarStatus(); -// } + if ( NetworkUtils.isConnected( mContext ) ) { + querryCarStatus(); + } } public void querryCarStatus() { @@ -186,15 +186,16 @@ class MogoOCHTaxiModel { private void restoreOrderInfo() { Logger.d( TAG, "重新查询订单状态" ); mRetryCounter = 0; - if ( mCurrentOCHOrder == null ) { - // 订单恢复 - String orderInfo = SharedPrefsMgr.getInstance( mContext ).getString( SP_KEY_OCH_TAXI_ORDER ); - Logger.d(TAG,"restoreOrderInfo:"+orderInfo); - if ( !TextUtils.isEmpty( orderInfo ) ) { - mCurrentOCHOrder = GsonUtil.objectFromJson( orderInfo, OCHTaxiOrderResponse.class ); - } - } - query2RestoreOrderStatus(mCurrentOCHOrder == null ? null : mCurrentOCHOrder.orderNo); +// if ( mCurrentOCHOrder == null ) { +// // 订单恢复 +// String orderInfo = SharedPrefsMgr.getInstance( mContext ).getString( SP_KEY_OCH_TAXI_ORDER ); +// Logger.d(TAG,"restoreOrderInfo:"+orderInfo); +// if ( !TextUtils.isEmpty( orderInfo ) ) { +// mCurrentOCHOrder = GsonUtil.objectFromJson( orderInfo, OCHTaxiOrderResponse.class ); +// } +// } +// query2RestoreOrderStatus(mCurrentOCHOrder == null ? null : mCurrentOCHOrder.orderNo); + query2RestoreOrderStatus(null); } // private void restoreOrderInfo_() { @@ -236,7 +237,7 @@ class MogoOCHTaxiModel { queryOCHOrderStatus( orderNo, new OCHOrderStatusCallback< OCHTaxiOrderResponse2 >() { @Override public void onSuccess( OCHTaxiOrderResponse2 data ) { - + Logger.d( TAG, "query2RestoreOrderStatus:"+ data.toString()); if ( data == null || data.data == null) { Logger.d( TAG, "订单已取消或已完成" ); clearCurrentOCHOrder(); @@ -332,18 +333,26 @@ class MogoOCHTaxiModel { mCurrentOCHOrder.drivingRoutes = new ArrayList<>(); OCHTaxiOrderResponse.OCHTaxiStation startStation = new OCHTaxiOrderResponse.OCHTaxiStation(); List< Double > startStationCoordinate = data.data.startStationCoordinate; - if (startStationCoordinate != null && startStationCoordinate.size()>1){ - startStation.lon = startStationCoordinate.get( 0 ); - startStation.lat = startStationCoordinate.get( 1 ); + List< Double > startGcjStationCoordinate = data.data.startGcjStationCoordinate; + if (startStationCoordinate != null && startStationCoordinate.size()>1 && + startGcjStationCoordinate!= null && startGcjStationCoordinate.size() > 1){ + startStation.lon = startGcjStationCoordinate.get( 0 ); + startStation.lat = startGcjStationCoordinate.get( 1 ); + startStation.wgsLon = startStationCoordinate.get(0); + startStation.wgsLat = startStationCoordinate.get(1); startStation.siteId = data.data.startStationId; startStation.siteName = data.data.startStation; mCurrentOCHOrder.drivingRoutes.add( startStation ); } OCHTaxiOrderResponse.OCHTaxiStation endStation = new OCHTaxiOrderResponse.OCHTaxiStation(); List< Double > endStationCoordinate = data.data.endStationCoordinate; - if (endStationCoordinate != null && endStationCoordinate.size()>1){ - endStation.lon = endStationCoordinate.get( 0 ); - endStation.lat = endStationCoordinate.get( 1 ); + List< Double > endGcjStationCoordinate = data.data.endGcjStationCoordinate; + if (endStationCoordinate != null && endStationCoordinate.size()>1 && + endGcjStationCoordinate!=null && endGcjStationCoordinate.size() > 1){ + endStation.lon = endGcjStationCoordinate.get( 0 ); + endStation.lat = endGcjStationCoordinate.get( 1 ); + endStation.wgsLon = endStationCoordinate.get( 0 ); + endStation.wgsLat = endStationCoordinate.get( 1 ); endStation.siteId = data.data.endStationId; endStation.siteName = data.data.endStation; mCurrentOCHOrder.drivingRoutes.add( endStation ); @@ -553,6 +562,7 @@ class MogoOCHTaxiModel { return; } Logger.d( TAG, "收到新订单" + GsonUtil.jsonFromObject(obj)); + mCurrentOCHOrder = obj; cacheOrderInfo2Native( mCurrentOCHOrder ); Location location = MogoApisHandler.getInstance() @@ -789,8 +799,8 @@ class MogoOCHTaxiModel { RemoteControlAutoPilotParameters parameters = new RemoteControlAutoPilotParameters(); parameters.vehicleType = mCurrentOCHOrder.orderType; - parameters.startLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat( mCurrentOCHOrder.drivingRoutes.get( 0 ).lat, mCurrentOCHOrder.drivingRoutes.get( 0 ).lon ); - parameters.endLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat( mCurrentOCHOrder.drivingRoutes.get( 1 ).lat, mCurrentOCHOrder.drivingRoutes.get( 1 ).lon ); + parameters.startLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat( mCurrentOCHOrder.drivingRoutes.get( 0 ).wgsLat, mCurrentOCHOrder.drivingRoutes.get( 0 ).wgsLon ); + parameters.endLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat( mCurrentOCHOrder.drivingRoutes.get( 1 ).wgsLat, mCurrentOCHOrder.drivingRoutes.get( 1 ).wgsLon ); MogoApisHandler.getInstance() .getApis() .getAdasControllerApi() @@ -813,7 +823,6 @@ class MogoOCHTaxiModel { double distance = CoordinateUtils.calculateLineDistance( endStationOCHLocation.lon, endStationOCHLocation.lat, carLocation.getLongitude(), carLocation.getLatitude()); - Logger.e("lianglihui","剩余里程:"+distance); mCurrentOCHOrder.decreaseTravelDistance(distance); } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/OCHOrderStatus.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/OCHOrderStatus.java index c140332764..2f276294b8 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/OCHOrderStatus.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/OCHOrderStatus.java @@ -22,7 +22,7 @@ enum OCHOrderStatus { UserArriveAtStartStation( 3 ), OnTheWayToEndStation( 4 ), ArriveAtEndStation( 5 ), - Completed( 6 ), + Completed( 6 ),//行程完成 Cancel( 7 ); private int code; diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/OCHTaxiOrderResponse.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/OCHTaxiOrderResponse.java index cc5f998d67..ffdc0c3451 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/OCHTaxiOrderResponse.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/OCHTaxiOrderResponse.java @@ -33,8 +33,7 @@ class OCHTaxiOrderResponse implements Parcelable { * @param distance */ public void decreaseTravelDistance( double distance ) { -// travelDistance -= ( ( float ) distance / 1000f ); - travelDistance = distance; + travelDistance = ( ( float ) distance / 1000f ); if ( travelDistance < 0 ) { travelDistance = 0; } @@ -43,9 +42,10 @@ class OCHTaxiOrderResponse implements Parcelable { public static class OCHTaxiStation implements Parcelable { public String siteId; public String siteName; - public double lon; + public double lon;// 用于计算距离 public double lat; - + public double wgsLon;//用于自动驾驶 + public double wgsLat; public OCHTaxiStation() { } @@ -60,6 +60,8 @@ class OCHTaxiOrderResponse implements Parcelable { dest.writeString( this.siteName ); dest.writeDouble( this.lon ); dest.writeDouble( this.lat ); + dest.writeDouble( this.wgsLon ); + dest.writeDouble( this.wgsLat ); } protected OCHTaxiStation( Parcel in ) { @@ -67,6 +69,8 @@ class OCHTaxiOrderResponse implements Parcelable { this.siteName = in.readString(); this.lon = in.readDouble(); this.lat = in.readDouble(); + this.wgsLon = in.readDouble(); + this.wgsLat = in.readDouble(); } public static final Creator< OCHTaxiStation > CREATOR = new Creator< OCHTaxiStation >() { diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/OCHTaxiOrderResponse2.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/OCHTaxiOrderResponse2.java index d01f18014b..cd2b9d22fd 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/OCHTaxiOrderResponse2.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/OCHTaxiOrderResponse2.java @@ -36,6 +36,7 @@ class OCHTaxiOrderResponse2 extends BaseData { public String startStationId; // 起点站点 public List< Double > startStationCoordinate; + public List< Double > startGcjStationCoordinate;//高德坐标系 用于距离计算 // 目的站名称 public String endStation; @@ -43,6 +44,7 @@ class OCHTaxiOrderResponse2 extends BaseData { public String endStationId; // 终点站点 public List< Double > endStationCoordinate; + public List< Double > endGcjStationCoordinate;//高德坐标系 用于距离计算 public String orderStartTime; public String cityCode; diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiFragment.java index 895b7a9438..d8b58d3ea3 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiFragment.java @@ -258,10 +258,10 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i Logger.d( TAG, "更新状态失败2" ); } } ); - MogoApisHandler.getInstance() - .getApis() - .getRegisterCenterApi() - .unregisterCarLocationChangedListener( TAG, this ); +// MogoApisHandler.getInstance() +// .getApis() +// .getRegisterCenterApi() +// .unregisterCarLocationChangedListener( TAG, this ); } @Override @@ -366,7 +366,6 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i @Override public void onCarLocationChanged( MogoLatLng latLng ) { - } private Location mLocation; @@ -376,7 +375,6 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i OCHTaxiUiController.getInstance().runOnUIThread( () -> { calculateTravelDistance( location ); } ); - // //坐标转换 // MogoLocation loc = new MogoLocation(); // loc.setTime(loc.getTime()); @@ -452,10 +450,13 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i getPanelView().setVisibility(View.INVISIBLE); hideSlidePanel(); changeOperationViewVisible(View.VISIBLE); - }else { + isSpeakedEndingNotice = false; + } else { getPanelView().setVisibility(View.VISIBLE); changeOperationViewVisible(View.INVISIBLE); - OCHTaxiUiController.getInstance().setOCHTaxiArriveCallback( this ); + } + if (status == OCHOrderStatus.OnTheWayToStartStation.getCode()){ + showNotice("收到新订单"); } updateOrderStatus(); }); diff --git a/gradle.properties b/gradle.properties index f3c830d9e1..7ed5e6ed84 100644 --- a/gradle.properties +++ b/gradle.properties @@ -180,7 +180,7 @@ MOGO_AICLOUD_SERVICES_APK_VERSION=1.0.0-SNAPSHOT # mogoAiCloud sdk services MOGO_AICLOUD_SERVICES_SDK_VERSION=1.0.0-SNAPSHOT # 自研地图 -MAP_SDK_VERSION=1.0.0-vr-8.5.63 +MAP_SDK_VERSION=1.0.0-vr-8.5.64 ## 产品库必备配置,产品库自动对versionCode和versionName版本进行升级 diff --git a/libraries/map-custom/map-version-update b/libraries/map-custom/map-version-update index f13493a2db..87fc570cca 100644 --- a/libraries/map-custom/map-version-update +++ b/libraries/map-custom/map-version-update @@ -110,4 +110,7 @@ fix crash 修改崩溃 8.5.63 -修改infoWindow崩溃 \ No newline at end of file +修改infoWindow崩溃 + +8.5.64 +修改崩溃 \ No newline at end of file diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/AdasRecognizedResultDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/AdasRecognizedResultDrawer.java index 1031b4439e..5e2f892c3e 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/AdasRecognizedResultDrawer.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/AdasRecognizedResultDrawer.java @@ -263,21 +263,22 @@ class AdasRecognizedResultDrawer extends BaseDrawer { // Log.d( "matchRoad", "cost = %s", System.currentTimeMillis() - start ); mLastPositions.put(uniqueKey, recognizedListResult); - if (useCache) { - Log.d(TAG, "使用缓存 id : " + uniqueKey); - long interval = 45; - if(lastPosition != null){ - interval = computeAnimDuration(lastPosition.systemTime, recognizedListResult.systemTime, lastPosition.satelliteTime, recognizedListResult.satelliteTime); - } - final MogoLatLng renderLoc = new MogoLatLng(recognizedListResult.lat, recognizedListResult.lon); - long cost = System.currentTimeMillis() - start; - final long intervalRef = interval - cost; - marker.addDynamicAnchorPosition(renderLoc, (float) recognizedListResult.heading, intervalRef); - } else { - Log.d(TAG, "未使用缓存 id : " + uniqueKey); - marker.setRotateAngle(((float) recognizedListResult.heading)); - marker.setPosition(recognizedListResult.lat, recognizedListResult.lon); +// if (useCache) { +// } + Log.d(TAG, "使用缓存 id : " + uniqueKey); + long interval = 45; + if(lastPosition != null){ + interval = computeAnimDuration(lastPosition.systemTime, recognizedListResult.systemTime, lastPosition.satelliteTime, recognizedListResult.satelliteTime); } + final MogoLatLng renderLoc = new MogoLatLng(recognizedListResult.lat, recognizedListResult.lon); + long cost = System.currentTimeMillis() - start; + final long intervalRef = interval - cost; + marker.addDynamicAnchorPosition(renderLoc, (float) recognizedListResult.heading, intervalRef); +// else { +// Log.d(TAG, "未使用缓存 id : " + uniqueKey); +// marker.setRotateAngle(((float) recognizedListResult.heading)); +// marker.setPosition(recognizedListResult.lat, recognizedListResult.lon); +// } String carColor = recognizedListResult.color; if (TextUtils.isEmpty(carColor)) { carColor = getModelRenderColor(recognizedListResult.type, FROM_ADAS, recognizedListResult.speed, recognizedListResult.lon, recognizedListResult.lat, recognizedListResult.heading);