网约车
1.更新计算剩余路程 2.到站增加tts播报
This commit is contained in:
@@ -8,12 +8,15 @@ import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.mogo.cloud.commons.utils.CoordinateUtils;
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||
import com.mogo.commons.network.SubscribeImpl;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.map.MogoLatLng;
|
||||
import com.mogo.map.location.MogoLocation;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
|
||||
import com.mogo.map.overlay.MogoPolylineOptions;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.utils.LocationUtils;
|
||||
import com.mogo.och.BaseOchFragment;
|
||||
import com.mogo.och.taxi.IMogoADASAutoPilotStatusChangedListener;
|
||||
import com.mogo.och.taxi.IMogoOCHTaxiArriveCallback;
|
||||
@@ -26,12 +29,21 @@ import com.mogo.och.taxi.R;
|
||||
import com.mogo.och.view.SlidePanelView;
|
||||
import com.mogo.service.adas.IMogoAdasOCHCallback;
|
||||
import com.mogo.service.adas.IMogoAdasRouteCallBack;
|
||||
import com.mogo.service.adas.entity.AdasOCHData;
|
||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.RequestOptions;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.RequestBody;
|
||||
|
||||
public
|
||||
/**
|
||||
* @author congtaowang
|
||||
@@ -441,20 +453,54 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
|
||||
private OCHTaxiOverlayManager ochTaxiOverlayManager;
|
||||
@Override
|
||||
public void routeResult(List<MogoLatLng> routeList) {
|
||||
Logger.d("lianglihui","routeResult");
|
||||
if (routeList != null && routeList.size() >0){
|
||||
Logger.d("lianglihui","routeResult:"+routeList.size());
|
||||
//adas回调导航路径 绘制引导线
|
||||
if ( ochTaxiOverlayManager == null){
|
||||
ochTaxiOverlayManager = new OCHTaxiOverlayManager(this.getContext());
|
||||
}
|
||||
ochTaxiOverlayManager.draw(mogoLocation,routeList);
|
||||
if (routeList == null ) return;
|
||||
double distance = calculateTravelDistance(mogoLocation,routeList);
|
||||
if ( MogoOCHTaxiModel.getInstance().checkCurrentOCHOrder() ) {
|
||||
MogoOCHTaxiModel.getInstance().getCurrentOCHOrder().decreaseTravelDistance( distance );
|
||||
updateOrderBaseStatusInfo();
|
||||
}
|
||||
Logger.d("lianglihui","routeResult 剩余导航距离:"+distance);
|
||||
// if (routeList != null && routeList.size() >0){
|
||||
// Logger.d("lianglihui","routeResult:"+routeList.size());
|
||||
// //adas回调导航路径 绘制引导线
|
||||
// if ( ochTaxiOverlayManager == null){
|
||||
// ochTaxiOverlayManager = new OCHTaxiOverlayManager(this.getContext());
|
||||
// }
|
||||
// ochTaxiOverlayManager.draw(mogoLocation,routeList);
|
||||
// }
|
||||
}
|
||||
|
||||
public double calculateTravelDistance(MogoLocation carLocation,List<MogoLatLng> routeList){
|
||||
List<MogoLatLng> mPolylinePointList = new ArrayList<>();
|
||||
mPolylinePointList.add(new MogoLatLng(carLocation.getLatitude(), carLocation.getLongitude()));
|
||||
MogoLatLng routeLatLng;
|
||||
for (int i = 0 ; i< routeList.size() ; i++) {
|
||||
routeLatLng =routeList.get(i);
|
||||
//需要剔除已经行驶过的经纬度,这里需要比对推荐路线集合中的点是否在当前车辆行驶方向前面如果不在则抛弃
|
||||
if (LocationUtils.isPointOnCarFront(carLocation, routeLatLng)) {
|
||||
mPolylinePointList.add(routeLatLng);
|
||||
}
|
||||
}
|
||||
MogoLatLng routeLatLng1,routeLatLng2;
|
||||
double distance = 0;
|
||||
for (int i = 0; i < mPolylinePointList.size() ; i ++){
|
||||
if (i < mPolylinePointList.size() -1 ){
|
||||
routeLatLng1 = mPolylinePointList.get(i);
|
||||
routeLatLng2 = mPolylinePointList.get(i+1);
|
||||
distance += CoordinateUtils.calculateLineDistance(
|
||||
routeLatLng1.getLon(), routeLatLng1.getLat(),
|
||||
routeLatLng2.getLon(), routeLatLng2.getLat()
|
||||
);
|
||||
}
|
||||
}
|
||||
return distance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArriveAt(AdasOCHData data) {
|
||||
|
||||
Logger.d( TAG, "行程结束");
|
||||
MogoApisHandler.getInstance().getApis().getAdasControllerApi().cancelAutopilot();
|
||||
AIAssist.getInstance( getContext() ).speakTTSVoice( "即将到达目的地,请您携带好随身物品,安全下车。" );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -129,6 +129,23 @@ public interface IMogoADASController extends IProvider {
|
||||
*/
|
||||
void removeAdasRecognizedDataCallback(IMogoAdasRecognizedDataCallback callback);
|
||||
|
||||
/**
|
||||
* 添加adas自动驾驶路线回调
|
||||
* @param callBack
|
||||
*/
|
||||
void addAdasAutopilotRouteCallBack(IMogoAdasRouteCallBack callBack);
|
||||
|
||||
/**
|
||||
* 移除adas自动驾驶路线回调
|
||||
* @param callBack
|
||||
*/
|
||||
void removeAdasAutopilotRouteCallBack(IMogoAdasRouteCallBack callBack);
|
||||
|
||||
/**
|
||||
* 查询自动驾驶路线
|
||||
*/
|
||||
void queryAutopilotRoute();
|
||||
|
||||
/**
|
||||
* 自车定位数据
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user