merge
This commit is contained in:
2
.idea/inspectionProfiles/Project_Default.xml
generated
2
.idea/inspectionProfiles/Project_Default.xml
generated
@@ -30,7 +30,7 @@
|
||||
<option name="IGNORE_JAVADOC_PERIOD" value="true" />
|
||||
<option name="IGNORE_DUPLICATED_THROWS" value="false" />
|
||||
<option name="IGNORE_POINT_TO_ITSELF" value="false" />
|
||||
<option name="myAdditionalJavadocTags" value="description,since:,date" />
|
||||
<option name="myAdditionalJavadocTags" value="date" />
|
||||
</inspection_tool>
|
||||
</profile>
|
||||
</component>
|
||||
@@ -1,5 +1,15 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.mogo.och.bus">
|
||||
|
||||
/
|
||||
<application>
|
||||
<!--这里是为了测试增加的广播-->
|
||||
<receiver android:name=".receiver.TestOchBusBroadcastReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="com.bus.test_control" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -16,7 +16,7 @@ public class OchBusStation {
|
||||
private double lon;
|
||||
private String siteDesc;
|
||||
private int siteState;
|
||||
private int isCurrentSite;
|
||||
private int isCurrentSite;// @see OchBusConst 是否是当前站 1:是 2:下一站 0:普通站
|
||||
private int siteColor;
|
||||
private String peoples;
|
||||
private int ifStop; // 是否需要停靠、1需要、0不需要
|
||||
|
||||
@@ -9,11 +9,11 @@ import com.mogo.commons.network.Utils;
|
||||
*/
|
||||
public class QueryLeaveAwayPassengersRequest {
|
||||
private String sn;
|
||||
private int siteId;
|
||||
private int endSiteId;
|
||||
|
||||
public QueryLeaveAwayPassengersRequest( int siteId ) {
|
||||
this.sn = Utils.getSn();
|
||||
this.siteId = siteId;
|
||||
this.endSiteId = siteId;
|
||||
}
|
||||
|
||||
public String getSn() {
|
||||
@@ -24,11 +24,11 @@ public class QueryLeaveAwayPassengersRequest {
|
||||
this.sn = sn;
|
||||
}
|
||||
|
||||
public int getSiteId() {
|
||||
return siteId;
|
||||
public int getEndSiteId() {
|
||||
return endSiteId;
|
||||
}
|
||||
|
||||
public void setSiteId( int siteId ) {
|
||||
this.siteId = siteId;
|
||||
public void setEndSiteId(int endSiteId) {
|
||||
this.endSiteId = endSiteId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ package com.mogo.och.bus.constant;
|
||||
* @author tongchenfei
|
||||
*/
|
||||
public class OchBusConst {
|
||||
// 测试用的广播
|
||||
public static final String BROADCAST_TEST_BUS_CONTROL_TYPE_EXTRA_KEY = "sceneType";
|
||||
// 无状态
|
||||
public static final int STATION_STATUS_IDLE = 0;
|
||||
// 到站
|
||||
|
||||
@@ -1,20 +1,15 @@
|
||||
package com.mogo.och.bus.fragment;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.och.BaseOchFragment;
|
||||
import com.mogo.och.bus.R;
|
||||
import com.mogo.och.bus.adapter.OchBusStationAdapter;
|
||||
import com.mogo.och.bus.bean.OchBusStation;
|
||||
import com.mogo.och.bus.constant.OchBusConst;
|
||||
import com.mogo.och.bus.presenter.OchBusPresenter;
|
||||
import com.mogo.och.view.SlidePanelView;
|
||||
import com.mogo.service.adas.IMogoAdasOCHCallback;
|
||||
@@ -39,7 +34,6 @@ public class OchBusFragment extends BaseOchFragment< OchBusFragment, OchBusPrese
|
||||
|
||||
private View mBus;
|
||||
|
||||
// private OchBusStationAdapter adapter;
|
||||
|
||||
@Override
|
||||
protected void initViews() {
|
||||
@@ -50,10 +44,6 @@ public class OchBusFragment extends BaseOchFragment< OchBusFragment, OchBusPrese
|
||||
mNextStationName = findViewById( R.id.module_och_bus_order_end_station );
|
||||
mEndStationFlag = findViewById( R.id.module_och_bus_end_station_tag );
|
||||
|
||||
// adapter = new OchBusStationAdapter( getContext() );
|
||||
// rvStationList.setAdapter( adapter );
|
||||
// rvStationList.setLayoutManager( new LinearLayoutManager( getContext() ) );
|
||||
|
||||
if ( DebugConfig.isDebug() ) {
|
||||
mBus.setOnClickListener( view -> {
|
||||
TipToast.shortTip( "重置了车站状态" );
|
||||
@@ -67,6 +57,7 @@ public class OchBusFragment extends BaseOchFragment< OchBusFragment, OchBusPrese
|
||||
}
|
||||
|
||||
Logger.d( TAG, "initView: " + MogoApisHandler.getInstance().getApis().getAdasControllerApi().getAutopilotStatus() );
|
||||
// 初始化的时候设置 UI 按钮状态
|
||||
switch ( MogoApisHandler.getInstance().getApis().getAdasControllerApi().getAutopilotStatus() ) {
|
||||
case IMogoAdasOCHCallback.STATUS_AUTOPILOT_DISABLE:
|
||||
hideAutopilotBiz();
|
||||
@@ -98,7 +89,9 @@ public class OchBusFragment extends BaseOchFragment< OchBusFragment, OchBusPrese
|
||||
/**
|
||||
* 根据站点列表信息刷新车站面板,滑块面板
|
||||
*
|
||||
* @param stationList 车站列表信息
|
||||
* @param stationList 车站列表信息
|
||||
* @param currentStation 当前站点
|
||||
* @param nextStation 下个站点
|
||||
*/
|
||||
public void refreshBusStations( List< OchBusStation > stationList, int currentStation, int nextStation ) {
|
||||
if ( getActivity() == null ) {
|
||||
@@ -129,15 +122,21 @@ public class OchBusFragment extends BaseOchFragment< OchBusFragment, OchBusPrese
|
||||
boolean isArriveAtStation = false;
|
||||
boolean isArriveAtStartStation = false;
|
||||
|
||||
// 获取当前站点的名称
|
||||
currentStationName = stationList.get( currentStation ).getSiteName();
|
||||
|
||||
// 是否到达起点
|
||||
if ( currentStation == 0 ) {
|
||||
startStationFlagVisibility = View.VISIBLE;
|
||||
isArriveAtStartStation = true;
|
||||
mStartStationFlag.setText( "始" );
|
||||
} else if ( currentStation > 0 && currentStation < stationList.size() - 1 ) {
|
||||
}
|
||||
// 是否到达站点
|
||||
else if ( currentStation > 0 && currentStation < stationList.size() - 1 ) {
|
||||
isArriveAtStation = true;
|
||||
} else if ( currentStation == stationList.size() - 1 ) {
|
||||
}
|
||||
// 是否到达终点
|
||||
else if ( currentStation == stationList.size() - 1 ) {
|
||||
isArriveEndStation = true;
|
||||
nextStationName = "--";
|
||||
mStartStationFlag.setText( "终" );
|
||||
@@ -145,20 +144,23 @@ public class OchBusFragment extends BaseOchFragment< OchBusFragment, OchBusPrese
|
||||
endStationFlagVisibility = View.INVISIBLE;
|
||||
}
|
||||
|
||||
// 获取下一站点名称
|
||||
if ( nextStation > currentStation && nextStation <= stationList.size() - 1 ) {
|
||||
nextStationName = stationList.get( nextStation ).getSiteName();
|
||||
}
|
||||
|
||||
// 是否到达终点
|
||||
if ( nextStation == stationList.size() - 1 ) {
|
||||
endStationFlagVisibility = View.VISIBLE;
|
||||
}
|
||||
|
||||
// 重置滑动按钮文字
|
||||
if ( isArriveEndStation ) {
|
||||
showSlidePanle( "单程结束" );
|
||||
} else if ( isArriveAtStartStation ) {
|
||||
showSlidePanle( "准备出发" );
|
||||
} else if ( isArriveAtStation ) {
|
||||
showSlidePanle( "滑动出车" );
|
||||
} else if ( isArriveAtStation ) {
|
||||
showSlidePanle( "准备出发" );
|
||||
}
|
||||
|
||||
mCurrentStationName.setText( currentStationName );
|
||||
@@ -189,9 +191,13 @@ public class OchBusFragment extends BaseOchFragment< OchBusFragment, OchBusPrese
|
||||
|
||||
@Override
|
||||
public void moveToEnd() {
|
||||
// 开启自动驾驶到下一站
|
||||
mPresenter.autoDriveToNextStation(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置自动驾驶可用状态
|
||||
*/
|
||||
public void onAutopilotEnableChange( boolean isEnable ) {
|
||||
if ( isEnable ) {
|
||||
showAutopilotBiz();
|
||||
@@ -206,11 +212,18 @@ public class OchBusFragment extends BaseOchFragment< OchBusFragment, OchBusPrese
|
||||
mPresenter.onChangeOperationStatus();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改经营状态
|
||||
* @param launch true-收车,false-出车
|
||||
*/
|
||||
public void changeOperationStatus( boolean launch ) {
|
||||
isOperationStatus = launch;
|
||||
if ( launch ) {
|
||||
tvOperationStatus.setText( "收车" );
|
||||
showSlidePanle("准备发车");
|
||||
} else {
|
||||
tvOperationStatus.setText( "出车" );
|
||||
hideSlidePanel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@ import com.mogo.och.bus.bean.OchBusStation;
|
||||
import com.mogo.och.bus.bean.OchBusStationsChangedMsg;
|
||||
import com.mogo.service.connection.IMogoOnMessageListener;
|
||||
import com.mogo.utils.UiThreadHandler;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -22,6 +24,7 @@ public
|
||||
* 小巴订单管理
|
||||
*/
|
||||
class OchBusOrderModel {
|
||||
private final String TAG = "OchBusOrderModel";
|
||||
|
||||
private static volatile OchBusOrderModel sInstance;
|
||||
|
||||
@@ -38,8 +41,14 @@ class OchBusOrderModel {
|
||||
|
||||
public void init() {
|
||||
mContext = AbsMogoApplication.getApp();
|
||||
MogoApisHandler.getInstance().getApis().getSocketManagerApi( mContext ).registerOnMessageListener( 401021, mOnOrderListener );
|
||||
MogoApisHandler.getInstance().getApis().getSocketManagerApi( mContext ).registerOnMessageListener( 401020, mOnBusStationsChangedMsg );
|
||||
MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getSocketManagerApi( mContext )
|
||||
.registerOnMessageListener( 401021, mOnOrderListener );
|
||||
MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getSocketManagerApi( mContext )
|
||||
.registerOnMessageListener( 401020, mOnBusStationsChangedMsg );
|
||||
}
|
||||
|
||||
private Object readResolve() {
|
||||
@@ -62,6 +71,8 @@ class OchBusOrderModel {
|
||||
|
||||
@Override
|
||||
public void onMsgReceived( OchBusOrder obj ) {
|
||||
Logger.i(TAG, "401021--小巴订单:" + GsonUtil.jsonFromObject(obj));
|
||||
|
||||
if ( obj == null ) {
|
||||
return;
|
||||
}
|
||||
@@ -85,6 +96,8 @@ class OchBusOrderModel {
|
||||
|
||||
@Override
|
||||
public void onMsgReceived( OchBusStationsChangedMsg obj ) {
|
||||
Logger.i(TAG, "401020--站点信息变更推送:" + GsonUtil.jsonFromObject(obj));
|
||||
|
||||
if ( obj == null ) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -101,9 +101,10 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
* 查询小巴路线
|
||||
*/
|
||||
public void queryBusRoutes() {
|
||||
Logger.d( TAG, "查询小巴路线");
|
||||
|
||||
double lat = 40.1974932972;
|
||||
double lon = 116.7354579447;
|
||||
|
||||
lat = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLat();
|
||||
lon = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon();
|
||||
|
||||
@@ -150,17 +151,21 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
* @param site
|
||||
*/
|
||||
private void renderBusStationsStatus( List< OchBusStation > site ) {
|
||||
Logger.d( TAG, "渲染站点信息");
|
||||
|
||||
int lastStopStation = getNextStopStation();
|
||||
|
||||
stationList.clear();
|
||||
stationList.addAll( site );
|
||||
for ( int i = 0; i < stationList.size(); i++ ) {
|
||||
OchBusStation s = stationList.get( i );
|
||||
// 是否正在开往下一站
|
||||
if ( s.getIsCurrentSite() == STATION_STATUS_LEAVING ) {
|
||||
isGoingToNextStation = true;
|
||||
mView.hideSlidePanel();
|
||||
}
|
||||
|
||||
// 当前站点信息
|
||||
if ( s.getIsCurrentSite() == STATION_STATUS_LEAVING
|
||||
|| s.getIsCurrentSite() == STATION_STATUS_STOPPED ) {
|
||||
currentStationIndex = i;
|
||||
@@ -183,6 +188,8 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
* @param lastStopStation
|
||||
*/
|
||||
private void resetNextStopStation( int lastStopStation ) {
|
||||
Logger.d( TAG, "重置下一站");
|
||||
|
||||
int nextStopStation = getNextStopStation();
|
||||
if ( nextStopStation < 0 ) {
|
||||
return;
|
||||
@@ -223,7 +230,7 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
}
|
||||
|
||||
/**
|
||||
* 在踩刹车、控制方向盘等操作后,会停止自动加水,重启自动驾驶的话相当于重新设置自动驾驶目的地
|
||||
* 在踩刹车、控制方向盘等操作后,会停止自动驾驶,重启自动驾驶的话相当于重新设置自动驾驶目的地
|
||||
*/
|
||||
public void restartAutopilot() {
|
||||
Logger.d( TAG, "重启自动驾驶===" + isGoingToNextStation );
|
||||
@@ -236,6 +243,8 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
* 测试、重置站点状态
|
||||
*/
|
||||
public void debugResetStationStatus() {
|
||||
Logger.d( TAG, "测试、重置站点状态");
|
||||
|
||||
OchBusResetRequest request = new OchBusResetRequest( Utils.getSn(), 1 );
|
||||
RequestBody requestBody = RequestBody.create( MediaType.get( "application/json;charset=UTF-8" ), GsonUtil.jsonFromObject( request ) );
|
||||
mService.debugResetStationStatus( requestBody )
|
||||
@@ -275,6 +284,8 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
* 开启自动驾驶到下一站
|
||||
*/
|
||||
public void autoDriveToNextStation( boolean isRestart ) {
|
||||
Logger.d( TAG, "开启自动驾驶到下一站");
|
||||
|
||||
if ( currentStationIndex >= stationList.size() - 1 ) {
|
||||
// 当前站是最后一站,结束当前行程
|
||||
travelOver();
|
||||
@@ -352,6 +363,8 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
* 到站后重置站点状态
|
||||
*/
|
||||
private void updateSiteStation() {
|
||||
Logger.d( TAG, "到站后重置站点状态");
|
||||
|
||||
mService.updateSiteStation( new UpdateSiteStatusRequest( stationList.get( currentStationIndex ).getSiteId() ) )
|
||||
.subscribeOn( Schedulers.io() )
|
||||
.observeOn( AndroidSchedulers.mainThread() )
|
||||
@@ -383,6 +396,8 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
* 查询到站下车乘客
|
||||
*/
|
||||
private void queryLeaveAwayPassengers() {
|
||||
Logger.d( TAG, "查询到站下车乘客");
|
||||
|
||||
mService.queryStationLeaveAwayPassengers( new QueryLeaveAwayPassengersRequest( stationList.get( currentStationIndex ).getSiteId() ) )
|
||||
.subscribeOn( Schedulers.io() )
|
||||
.observeOn( AndroidSchedulers.mainThread() )
|
||||
@@ -410,9 +425,11 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
/**
|
||||
* 播报下车乘客信息
|
||||
*
|
||||
* @param o
|
||||
* @param awayPassengersResponse
|
||||
*/
|
||||
private void playLeavePassengersMsg( QueryLeaveAwayPassengersResponse o ) {
|
||||
private void playLeavePassengersMsg( QueryLeaveAwayPassengersResponse awayPassengersResponse ) {
|
||||
Logger.d( TAG, "播报下车乘客信息");
|
||||
|
||||
if ( currentStationIndex > stationList.size() - 1 ) {
|
||||
return;
|
||||
}
|
||||
@@ -422,11 +439,11 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
if ( !station.endsWith( "站" ) ) {
|
||||
builder.append( "站" );
|
||||
}
|
||||
if ( o == null || o.result == null || o.result.info == null || o.result.info.isEmpty() ) {
|
||||
if ( awayPassengersResponse == null || awayPassengersResponse.result == null || awayPassengersResponse.result.info == null || awayPassengersResponse.result.info.isEmpty() ) {
|
||||
//
|
||||
} else {
|
||||
builder.append( ",请尾号为" );
|
||||
for ( QueryLeaveAwayPassengersResponse.LeaveAwayPassenger leaveAwayPassenger : o.result.info ) {
|
||||
for ( QueryLeaveAwayPassengersResponse.LeaveAwayPassenger leaveAwayPassenger : awayPassengersResponse.result.info ) {
|
||||
if ( leaveAwayPassenger == null ) {
|
||||
continue;
|
||||
}
|
||||
@@ -443,6 +460,8 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
* 行程结束
|
||||
*/
|
||||
private void travelOver() {
|
||||
Logger.d( TAG, "行程结束");
|
||||
|
||||
if ( currentStationIndex >= stationList.size() ) {
|
||||
Logger.e( TAG, "travel over index out of station list" );
|
||||
return;
|
||||
@@ -484,13 +503,16 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
Logger.d( TAG, "onStateChange: " + state );
|
||||
switch ( state ) {
|
||||
case IMogoAdasOCHCallback.STATUS_AUTOPILOT_ENABLE:
|
||||
// 设置UI【自动驾驶】按钮是否展示
|
||||
mView.onAutopilotEnableChange( true );
|
||||
// 改变UI自动驾驶状态
|
||||
mView.onAutopilotStatusChanged( false );
|
||||
if ( isGoingToNextStation ) {
|
||||
mView.hideSlidePanel();
|
||||
}
|
||||
break;
|
||||
case IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING:
|
||||
// 改变UI自动驾驶状态
|
||||
mView.onAutopilotStatusChanged( true );
|
||||
break;
|
||||
default:
|
||||
@@ -516,6 +538,8 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
* 修改小巴运营状态
|
||||
*/
|
||||
public void onChangeOperationStatus() {
|
||||
Logger.d( TAG, "修改小巴运营状态");
|
||||
|
||||
mService.changeOperationStatus( isWorking() ? new OchBusOperationStatusRequest().shutdown() : new OchBusOperationStatusRequest().launch() )
|
||||
.subscribeOn( Schedulers.io() )
|
||||
.observeOn( AndroidSchedulers.mainThread() )
|
||||
@@ -552,6 +576,8 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
* 查询运营状态
|
||||
*/
|
||||
public void queryOperationStatus() {
|
||||
Logger.d( TAG, "查询运营状态");
|
||||
|
||||
mService.queryOperationStatus( new QueryOchBusOperationStatusRequest() )
|
||||
.subscribeOn( Schedulers.io() )
|
||||
.observeOn( AndroidSchedulers.mainThread() )
|
||||
@@ -570,13 +596,13 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog
|
||||
@Override
|
||||
public void onError( String message, int code ) {
|
||||
super.onError( message, code );
|
||||
Logger.d( TAG, "leave station error: " + message );
|
||||
Logger.d( TAG, "查询运营状态 error: " + message );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError( Throwable e ) {
|
||||
super.onError( e );
|
||||
Logger.e( TAG, e, "leave station exception" );
|
||||
Logger.e( TAG, e, "查询运营状态 exception" );
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.mogo.och.bus.receiver;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
import com.mogo.och.bus.constant.OchBusConst;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
/**
|
||||
* 测试小巴车的场景
|
||||
*
|
||||
* @author donghongyu
|
||||
* @date 4/26/21 12:08 PM
|
||||
*/
|
||||
public class TestOchBusBroadcastReceiver extends BroadcastReceiver {
|
||||
private static final String TAG = "TestOchBusBroadcastReceiver";
|
||||
|
||||
private Context mContext;
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
try {
|
||||
this.mContext = context;
|
||||
int sceneType = intent.getIntExtra(OchBusConst.BROADCAST_TEST_BUS_CONTROL_TYPE_EXTRA_KEY, 0);
|
||||
Logger.d(TAG, "sceneType:" + sceneType);
|
||||
|
||||
// 分发场景
|
||||
dispatchSceneTest(sceneType);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void dispatchSceneTest(int sceneType) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
184
OCH/mogo-och-bus/src/main/res/raw/bus_away_passengers.json
Normal file
184
OCH/mogo-och-bus/src/main/res/raw/bus_away_passengers.json
Normal file
@@ -0,0 +1,184 @@
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "",
|
||||
"detailMsg": "",
|
||||
"result": {
|
||||
"info": [
|
||||
{
|
||||
"_id": "cee57b3ae07c4486b0357319368487d7",
|
||||
"orderNo": "XB20210422000002",
|
||||
"orderType": 10,
|
||||
"userName": "董QAD",
|
||||
"userPhone": "15631204018",
|
||||
"startStationId": 1,
|
||||
"startStation": "万集东门站",
|
||||
"startStationCoordinate": [
|
||||
116.7354579447,
|
||||
40.1974932972
|
||||
],
|
||||
"endStationId": 2,
|
||||
"endStation": "顺密路口站",
|
||||
"endStationCoordinate": [
|
||||
116.721520973,
|
||||
40.1940181096
|
||||
],
|
||||
"orderDispatchType": 7,
|
||||
"carNum": "京NB010",
|
||||
"sn": "F803EB2046PZD00149",
|
||||
"orderStartTime": "2021-04-22 16:31:58",
|
||||
"orderEndTime": "2021-04-26 10:38:13",
|
||||
"arrivedStartStationTime": null,
|
||||
"arrivedEndStationTime": null,
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"createTime": "2021-04-22 16:31:58",
|
||||
"updateTime": "2021-04-26 10:38:13",
|
||||
"personNum": 1,
|
||||
"travelDistance": 1.2,
|
||||
"vehicleColour": null,
|
||||
"lastBrandName": null,
|
||||
"headImgUrl": null
|
||||
},
|
||||
{
|
||||
"_id": "ce69b1bcfb9840c6a4563bc6ef947caf",
|
||||
"orderNo": "XB20210426000000",
|
||||
"orderType": 10,
|
||||
"userName": "董QAD",
|
||||
"userPhone": "15631204018",
|
||||
"startStationId": 1,
|
||||
"startStation": "万集东门站",
|
||||
"startStationCoordinate": [
|
||||
116.7354579447,
|
||||
40.1974932972
|
||||
],
|
||||
"endStationId": 2,
|
||||
"endStation": "顺密路口站",
|
||||
"endStationCoordinate": [
|
||||
116.721520973,
|
||||
40.1940181096
|
||||
],
|
||||
"orderDispatchType": 7,
|
||||
"carNum": "京NB010",
|
||||
"sn": "F803EB2046PZD00149",
|
||||
"orderStartTime": "2021-04-26 10:38:48",
|
||||
"orderEndTime": "2021-04-26 10:46:16",
|
||||
"arrivedStartStationTime": null,
|
||||
"arrivedEndStationTime": null,
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"createTime": "2021-04-26 10:38:48",
|
||||
"updateTime": "2021-04-26 10:46:16",
|
||||
"personNum": 1,
|
||||
"travelDistance": 1.2,
|
||||
"vehicleColour": null,
|
||||
"lastBrandName": null,
|
||||
"headImgUrl": null
|
||||
},
|
||||
{
|
||||
"_id": "cae07b56f41c4e0fa60ab3543ffc258e",
|
||||
"orderNo": "XB20210426000001",
|
||||
"orderType": 10,
|
||||
"userName": "董QAD",
|
||||
"userPhone": "15631204018",
|
||||
"startStationId": 1,
|
||||
"startStation": "万集东门站",
|
||||
"startStationCoordinate": [
|
||||
116.7354579447,
|
||||
40.1974932972
|
||||
],
|
||||
"endStationId": 2,
|
||||
"endStation": "顺密路口站",
|
||||
"endStationCoordinate": [
|
||||
116.721520973,
|
||||
40.1940181096
|
||||
],
|
||||
"orderDispatchType": 7,
|
||||
"carNum": "京NB010",
|
||||
"sn": "F803EB2046PZD00149",
|
||||
"orderStartTime": "2021-04-26 10:47:05",
|
||||
"orderEndTime": "2021-04-26 10:48:07",
|
||||
"arrivedStartStationTime": null,
|
||||
"arrivedEndStationTime": null,
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"createTime": "2021-04-26 10:47:05",
|
||||
"updateTime": "2021-04-26 10:48:07",
|
||||
"personNum": 1,
|
||||
"travelDistance": 1.2,
|
||||
"vehicleColour": null,
|
||||
"lastBrandName": null,
|
||||
"headImgUrl": null
|
||||
},
|
||||
{
|
||||
"_id": "62bc84afbc434d01b644c74ee406e772",
|
||||
"orderNo": "XB20210426000002",
|
||||
"orderType": 10,
|
||||
"userName": "董QAD",
|
||||
"userPhone": "15631204018",
|
||||
"startStationId": 1,
|
||||
"startStation": "万集东门站",
|
||||
"startStationCoordinate": [
|
||||
116.7354579447,
|
||||
40.1974932972
|
||||
],
|
||||
"endStationId": 2,
|
||||
"endStation": "顺密路口站",
|
||||
"endStationCoordinate": [
|
||||
116.721520973,
|
||||
40.1940181096
|
||||
],
|
||||
"orderDispatchType": 7,
|
||||
"carNum": "京NB010",
|
||||
"sn": "F803EB2046PZD00149",
|
||||
"orderStartTime": "2021-04-26 10:48:22",
|
||||
"orderEndTime": "2021-04-26 10:50:32",
|
||||
"arrivedStartStationTime": null,
|
||||
"arrivedEndStationTime": null,
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"createTime": "2021-04-26 10:48:22",
|
||||
"updateTime": "2021-04-26 10:50:32",
|
||||
"personNum": 1,
|
||||
"travelDistance": 1.2,
|
||||
"vehicleColour": null,
|
||||
"lastBrandName": null,
|
||||
"headImgUrl": null
|
||||
},
|
||||
{
|
||||
"_id": "fa3214c7a6ec411bb3d6edbc98907423",
|
||||
"orderNo": "XB20210426000009",
|
||||
"orderType": 10,
|
||||
"userName": "董QAD",
|
||||
"userPhone": "15631204018",
|
||||
"startStationId": 1,
|
||||
"startStation": "万集东门站",
|
||||
"startStationCoordinate": [
|
||||
116.7354579447,
|
||||
40.1974932972
|
||||
],
|
||||
"endStationId": 2,
|
||||
"endStation": "顺密路口站",
|
||||
"endStationCoordinate": [
|
||||
116.721520973,
|
||||
40.1940181096
|
||||
],
|
||||
"orderDispatchType": 7,
|
||||
"carNum": "京NB010",
|
||||
"sn": "F803EB2046PZD00149",
|
||||
"orderStartTime": "2021-04-26 19:26:05",
|
||||
"orderEndTime": "2021-04-27 14:35:50",
|
||||
"arrivedStartStationTime": null,
|
||||
"arrivedEndStationTime": null,
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"createTime": "2021-04-26 19:26:05",
|
||||
"updateTime": "2021-04-27 14:35:50",
|
||||
"personNum": 1,
|
||||
"travelDistance": 1.2,
|
||||
"vehicleColour": null,
|
||||
"lastBrandName": null,
|
||||
"headImgUrl": null
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
28
OCH/mogo-och-bus/src/main/res/raw/bus_order_1.json
Normal file
28
OCH/mogo-och-bus/src/main/res/raw/bus_order_1.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"_id": "62bc84afbc434d01b644c74ee406e772",
|
||||
"areaCode": "1001",
|
||||
"carNum": "京NB010",
|
||||
"cityCode": "010",
|
||||
"createTime": "Apr 26, 2021 10:48:22 AM",
|
||||
"endStation": "顺密路口站",
|
||||
"endStationCoordinate": [
|
||||
116.721520973,
|
||||
40.1940181096
|
||||
],
|
||||
"endStationId": 2,
|
||||
"orderDispatchType": 1,
|
||||
"orderNo": "XB20210426000002",
|
||||
"orderStartTime": "Apr 26, 2021 10:48:22 AM",
|
||||
"orderType": 10,
|
||||
"sn": "F803EB2046PZD00149",
|
||||
"startStation": "万集东门站",
|
||||
"startStationCoordinate": [
|
||||
116.7354579447,
|
||||
40.1974932972
|
||||
],
|
||||
"startStationId": 1,
|
||||
"travelDistance": 1.2,
|
||||
"updateTime": "Apr 26, 2021 10:48:23 AM",
|
||||
"userName": "董QAD",
|
||||
"userPhone": "15631204018"
|
||||
}
|
||||
549
OCH/mogo-och-bus/src/main/res/raw/bus_station_list1.json
Normal file
549
OCH/mogo-och-bus/src/main/res/raw/bus_station_list1.json
Normal file
@@ -0,0 +1,549 @@
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "",
|
||||
"detailMsg": "",
|
||||
"result": {
|
||||
"site": [
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 1.0,
|
||||
"siteName": "万集东门站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.7354579447,
|
||||
40.1974932972
|
||||
],
|
||||
"lon": 116.7354579447,
|
||||
"lat": 40.1974932972,
|
||||
"siteDesc": "万集东门站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 1.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 1.0,
|
||||
"siteName": "万集东门站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.7374429112,
|
||||
40.2023987087
|
||||
],
|
||||
"lon": 116.7374429112,
|
||||
"lat": 40.2023987087,
|
||||
"siteDesc": "万集东门站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 2.0,
|
||||
"siteName": "顺密路口站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.721520973,
|
||||
40.1940181096
|
||||
],
|
||||
"lon": 116.721520973,
|
||||
"lat": 40.1940181096,
|
||||
"siteDesc": "顺密路口站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 2.0,
|
||||
"siteName": "顺密路口站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.723146,
|
||||
40.179637
|
||||
],
|
||||
"lon": 116.723146,
|
||||
"lat": 40.179637,
|
||||
"siteDesc": "顺密路口站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 2.0,
|
||||
"siteId": 2.0,
|
||||
"siteName": "顺密路口站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.738835502,
|
||||
40.2023958306
|
||||
],
|
||||
"lon": 116.738835502,
|
||||
"lat": 40.2023958306,
|
||||
"siteDesc": "顺密路口站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 3.0,
|
||||
"siteName": "第三站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.723232,
|
||||
40.180637
|
||||
],
|
||||
"lon": 116.723232,
|
||||
"lat": 40.180637,
|
||||
"siteDesc": "这里是第三站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 4.0,
|
||||
"siteName": "第四站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.72343,
|
||||
40.182092
|
||||
],
|
||||
"lon": 116.72343,
|
||||
"lat": 40.182092,
|
||||
"siteDesc": "这里是第四站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 5.0,
|
||||
"siteName": "第五站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.7235,
|
||||
40.182699
|
||||
],
|
||||
"lon": 116.7235,
|
||||
"lat": 40.182699,
|
||||
"siteDesc": "这里是第五站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 6.0,
|
||||
"siteName": "第六站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.723789,
|
||||
40.185416
|
||||
],
|
||||
"lon": 116.723789,
|
||||
"lat": 40.185416,
|
||||
"siteDesc": "这里是第六站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 7.0,
|
||||
"siteName": "第七站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.723977,
|
||||
40.18701
|
||||
],
|
||||
"lon": 116.723977,
|
||||
"lat": 40.18701,
|
||||
"siteDesc": "这里是第七站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 8.0,
|
||||
"siteName": "第八站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.72431,
|
||||
40.190182
|
||||
],
|
||||
"lon": 116.72431,
|
||||
"lat": 40.190182,
|
||||
"siteDesc": "这里是第八站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 9.0,
|
||||
"siteName": "第九站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.72431,
|
||||
40.190182
|
||||
],
|
||||
"lon": 116.72431,
|
||||
"lat": 40.190182,
|
||||
"siteDesc": "这里是第九站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 10.0,
|
||||
"siteName": "第十站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.724503,
|
||||
40.192026
|
||||
],
|
||||
"lon": 116.724503,
|
||||
"lat": 40.192026,
|
||||
"siteDesc": "这里是第十站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 11.0,
|
||||
"siteName": "第十一站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.724873,
|
||||
40.19489
|
||||
],
|
||||
"lon": 116.724873,
|
||||
"lat": 40.19489,
|
||||
"siteDesc": "这里是第十一站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 14.0,
|
||||
"siteName": "第十四站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.728258,
|
||||
40.195255
|
||||
],
|
||||
"lon": 116.728258,
|
||||
"lat": 40.195255,
|
||||
"siteDesc": "这里是第十四站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 2.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 15.0,
|
||||
"siteName": "第十五站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.729288,
|
||||
40.195476
|
||||
],
|
||||
"lon": 116.729288,
|
||||
"lat": 40.195476,
|
||||
"siteDesc": "这里是第十五站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 3.0,
|
||||
"siteColor": 2.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 16.0,
|
||||
"siteName": "第十六站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.730554,
|
||||
40.195952
|
||||
],
|
||||
"lon": 116.730554,
|
||||
"lat": 40.195952,
|
||||
"siteDesc": "这里是第十六站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 17.0,
|
||||
"siteName": "第十七站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.732227,
|
||||
40.196374
|
||||
],
|
||||
"lon": 116.732227,
|
||||
"lat": 40.196374,
|
||||
"siteDesc": "这里是第十七站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 18.0,
|
||||
"siteName": "第十八站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.732978,
|
||||
40.196443
|
||||
],
|
||||
"lon": 116.732978,
|
||||
"lat": 40.196443,
|
||||
"siteDesc": "这里是第十八站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 19.0,
|
||||
"siteName": "第十九站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.733671,
|
||||
40.196497
|
||||
],
|
||||
"lon": 116.733671,
|
||||
"lat": 40.196497,
|
||||
"siteDesc": "这里是第十九站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 20.0,
|
||||
"siteName": "第二十站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.736852,
|
||||
40.196493
|
||||
],
|
||||
"lon": 116.736852,
|
||||
"lat": 40.196493,
|
||||
"siteDesc": "这里是第二十站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 21.0,
|
||||
"siteName": "第二十一站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.737866,
|
||||
40.19646
|
||||
],
|
||||
"lon": 116.737866,
|
||||
"lat": 40.19646,
|
||||
"siteDesc": "这里是第二十一站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 22.0,
|
||||
"siteName": "第二十二站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.745177,
|
||||
40.19646
|
||||
],
|
||||
"lon": 116.745177,
|
||||
"lat": 40.19646,
|
||||
"siteDesc": "这里是第二十二站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 23.0,
|
||||
"siteName": "第二十三站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.750644,
|
||||
40.196402
|
||||
],
|
||||
"lon": 116.750644,
|
||||
"lat": 40.196402,
|
||||
"siteDesc": "这里是第二十三站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 10000.0,
|
||||
"siteId": 10000.0,
|
||||
"siteName": "0409第一站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.7389159039,
|
||||
40.1992312592
|
||||
],
|
||||
"lon": 116.7389159039,
|
||||
"lat": 40.1992312592,
|
||||
"siteDesc": "0409这里第一站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 10000.0,
|
||||
"siteId": 10000.0,
|
||||
"siteName": "0409第一站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.7389159039,
|
||||
40.1992312592
|
||||
],
|
||||
"lon": 116.7389159039,
|
||||
"lat": 40.1992312592,
|
||||
"siteDesc": "0409这里第一站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 10001.0,
|
||||
"siteId": 10002.0,
|
||||
"siteName": "0409第二站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.7375553739,
|
||||
40.1992677344
|
||||
],
|
||||
"lon": 116.7375553739,
|
||||
"lat": 40.1992677344,
|
||||
"siteDesc": "这里是第二站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
549
OCH/mogo-och-bus/src/main/res/raw/bus_station_list2.json
Normal file
549
OCH/mogo-och-bus/src/main/res/raw/bus_station_list2.json
Normal file
@@ -0,0 +1,549 @@
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "",
|
||||
"detailMsg": "",
|
||||
"result": {
|
||||
"site": [
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 1.0,
|
||||
"siteName": "万集东门站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.7354579447,
|
||||
40.1974932972
|
||||
],
|
||||
"lon": 116.7354579447,
|
||||
"lat": 40.1974932972,
|
||||
"siteDesc": "万集东门站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 1.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 1.0,
|
||||
"siteName": "万集东门站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.7374429112,
|
||||
40.2023987087
|
||||
],
|
||||
"lon": 116.7374429112,
|
||||
"lat": 40.2023987087,
|
||||
"siteDesc": "万集东门站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 2.0,
|
||||
"siteName": "顺密路口站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.721520973,
|
||||
40.1940181096
|
||||
],
|
||||
"lon": 116.721520973,
|
||||
"lat": 40.1940181096,
|
||||
"siteDesc": "顺密路口站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 2.0,
|
||||
"siteName": "顺密路口站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.723146,
|
||||
40.179637
|
||||
],
|
||||
"lon": 116.723146,
|
||||
"lat": 40.179637,
|
||||
"siteDesc": "顺密路口站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 2.0,
|
||||
"siteId": 2.0,
|
||||
"siteName": "顺密路口站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.738835502,
|
||||
40.2023958306
|
||||
],
|
||||
"lon": 116.738835502,
|
||||
"lat": 40.2023958306,
|
||||
"siteDesc": "顺密路口站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 3.0,
|
||||
"siteName": "第三站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.723232,
|
||||
40.180637
|
||||
],
|
||||
"lon": 116.723232,
|
||||
"lat": 40.180637,
|
||||
"siteDesc": "这里是第三站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 1.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 4.0,
|
||||
"siteName": "第四站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.72343,
|
||||
40.182092
|
||||
],
|
||||
"lon": 116.72343,
|
||||
"lat": 40.182092,
|
||||
"siteDesc": "这里是第四站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 5.0,
|
||||
"siteName": "第五站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.7235,
|
||||
40.182699
|
||||
],
|
||||
"lon": 116.7235,
|
||||
"lat": 40.182699,
|
||||
"siteDesc": "这里是第五站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 6.0,
|
||||
"siteName": "第六站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.723789,
|
||||
40.185416
|
||||
],
|
||||
"lon": 116.723789,
|
||||
"lat": 40.185416,
|
||||
"siteDesc": "这里是第六站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 7.0,
|
||||
"siteName": "第七站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.723977,
|
||||
40.18701
|
||||
],
|
||||
"lon": 116.723977,
|
||||
"lat": 40.18701,
|
||||
"siteDesc": "这里是第七站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 8.0,
|
||||
"siteName": "第八站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.72431,
|
||||
40.190182
|
||||
],
|
||||
"lon": 116.72431,
|
||||
"lat": 40.190182,
|
||||
"siteDesc": "这里是第八站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 1.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 9.0,
|
||||
"siteName": "第九站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.72431,
|
||||
40.190182
|
||||
],
|
||||
"lon": 116.72431,
|
||||
"lat": 40.190182,
|
||||
"siteDesc": "这里是第九站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 10.0,
|
||||
"siteName": "第十站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.724503,
|
||||
40.192026
|
||||
],
|
||||
"lon": 116.724503,
|
||||
"lat": 40.192026,
|
||||
"siteDesc": "这里是第十站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 11.0,
|
||||
"siteName": "第十一站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.724873,
|
||||
40.19489
|
||||
],
|
||||
"lon": 116.724873,
|
||||
"lat": 40.19489,
|
||||
"siteDesc": "这里是第十一站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 1.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 14.0,
|
||||
"siteName": "第十四站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.728258,
|
||||
40.195255
|
||||
],
|
||||
"lon": 116.728258,
|
||||
"lat": 40.195255,
|
||||
"siteDesc": "这里是第十四站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 2.0,
|
||||
"siteColor": 1.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 15.0,
|
||||
"siteName": "第十五站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.729288,
|
||||
40.195476
|
||||
],
|
||||
"lon": 116.729288,
|
||||
"lat": 40.195476,
|
||||
"siteDesc": "这里是第十五站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 3.0,
|
||||
"siteColor": 2.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 16.0,
|
||||
"siteName": "第十六站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.730554,
|
||||
40.195952
|
||||
],
|
||||
"lon": 116.730554,
|
||||
"lat": 40.195952,
|
||||
"siteDesc": "这里是第十六站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 17.0,
|
||||
"siteName": "第十七站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.732227,
|
||||
40.196374
|
||||
],
|
||||
"lon": 116.732227,
|
||||
"lat": 40.196374,
|
||||
"siteDesc": "这里是第十七站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 18.0,
|
||||
"siteName": "第十八站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.732978,
|
||||
40.196443
|
||||
],
|
||||
"lon": 116.732978,
|
||||
"lat": 40.196443,
|
||||
"siteDesc": "这里是第十八站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 19.0,
|
||||
"siteName": "第十九站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.733671,
|
||||
40.196497
|
||||
],
|
||||
"lon": 116.733671,
|
||||
"lat": 40.196497,
|
||||
"siteDesc": "这里是第十九站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 20.0,
|
||||
"siteName": "第二十站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.736852,
|
||||
40.196493
|
||||
],
|
||||
"lon": 116.736852,
|
||||
"lat": 40.196493,
|
||||
"siteDesc": "这里是第二十站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 1.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 21.0,
|
||||
"siteName": "第二十一站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.737866,
|
||||
40.19646
|
||||
],
|
||||
"lon": 116.737866,
|
||||
"lat": 40.19646,
|
||||
"siteDesc": "这里是第二十一站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 22.0,
|
||||
"siteName": "第二十二站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.745177,
|
||||
40.19646
|
||||
],
|
||||
"lon": 116.745177,
|
||||
"lat": 40.19646,
|
||||
"siteDesc": "这里是第二十二站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 1.0
|
||||
},
|
||||
{
|
||||
"lineId": 1.0,
|
||||
"siteId": 23.0,
|
||||
"siteName": "第二十三站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.750644,
|
||||
40.196402
|
||||
],
|
||||
"lon": 116.750644,
|
||||
"lat": 40.196402,
|
||||
"siteDesc": "这里是第二十三站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 0.0
|
||||
},
|
||||
{
|
||||
"lineId": 10000.0,
|
||||
"siteId": 10000.0,
|
||||
"siteName": "0409第一站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.7389159039,
|
||||
40.1992312592
|
||||
],
|
||||
"lon": 116.7389159039,
|
||||
"lat": 40.1992312592,
|
||||
"siteDesc": "0409这里第一站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 1.0
|
||||
},
|
||||
{
|
||||
"lineId": 10000.0,
|
||||
"siteId": 10000.0,
|
||||
"siteName": "0409第一站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.7389159039,
|
||||
40.1992312592
|
||||
],
|
||||
"lon": 116.7389159039,
|
||||
"lat": 40.1992312592,
|
||||
"siteDesc": "0409这里第一站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 1.0
|
||||
},
|
||||
{
|
||||
"lineId": 10001.0,
|
||||
"siteId": 10002.0,
|
||||
"siteName": "0409第二站",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"areaName": "顺义区",
|
||||
"currentLocation": [
|
||||
116.7375553739,
|
||||
40.1992677344
|
||||
],
|
||||
"lon": 116.7375553739,
|
||||
"lat": 40.1992677344,
|
||||
"siteDesc": "这里是第二站",
|
||||
"siteState": 1.0,
|
||||
"isCurrentSite": 0.0,
|
||||
"siteColor": 0.0,
|
||||
"peoples": "0",
|
||||
"ifStop": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -430,7 +430,10 @@ class MogoOCHTaxiModel {
|
||||
|
||||
@Override
|
||||
public void onMsgReceived( OCHTaxiOrderResponse obj ) {
|
||||
Logger.d( TAG, "收到新订单" );
|
||||
if ( obj == null ) {
|
||||
return;
|
||||
}
|
||||
Logger.d( TAG, "收到新订单" + GsonUtil.jsonFromObject(obj));
|
||||
mCurrentOCHOrder = obj;
|
||||
cacheOrderInfo2Native( mCurrentOCHOrder );
|
||||
Location location = MogoApisHandler.getInstance()
|
||||
@@ -497,6 +500,7 @@ class MogoOCHTaxiModel {
|
||||
if ( obj == null ) {
|
||||
return;
|
||||
}
|
||||
Logger.d(TAG, "订单状态被改变:" + GsonUtil.jsonFromObject(obj));
|
||||
OCHOrderStatus status = OCHOrderStatus.valueOf( obj.orderDispatchType );
|
||||
switch ( status ) {
|
||||
case Cancel:
|
||||
|
||||
11
OCH/mogo-och-taxi/src/main/res/raw/taxi_order.json
Normal file
11
OCH/mogo-och-taxi/src/main/res/raw/taxi_order.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"drivingRoutes": [
|
||||
|
||||
],
|
||||
"endStation": "第二十一站",
|
||||
"orderDispatchType": 1,
|
||||
"orderNo": "CZ20210427000016",
|
||||
"orderType": 9,
|
||||
"startStation": "0409第一站",
|
||||
"travelDistance": 0.3
|
||||
}
|
||||
39
OCH/mogo-och-taxi/src/main/res/raw/taxi_order_detail.json
Normal file
39
OCH/mogo-och-taxi/src/main/res/raw/taxi_order_detail.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "",
|
||||
"detailMsg": "",
|
||||
"result": {
|
||||
"_id": "5352c1d2c9d84ab3ab9ecf1e47e13bdd",
|
||||
"orderNo": "CZ20210427000016",
|
||||
"orderType": 9,
|
||||
"userName": "董QAD",
|
||||
"userPhone": "15631204018",
|
||||
"startStationId": 10000,
|
||||
"startStation": "0409第一站",
|
||||
"startStationCoordinate": [
|
||||
116.7389159039,
|
||||
40.1992312592
|
||||
],
|
||||
"endStationId": 21,
|
||||
"endStation": "第二十一站",
|
||||
"endStationCoordinate": [
|
||||
116.737866,
|
||||
40.19646
|
||||
],
|
||||
"orderDispatchType": 1,
|
||||
"carNum": "京NB010",
|
||||
"sn": "F803EB2046PZD00149",
|
||||
"orderStartTime": "Apr 27, 2021 8:55:44 PM",
|
||||
"arrivedStartStationTime": "",
|
||||
"arrivedEndStationTime": "",
|
||||
"cityCode": "010",
|
||||
"areaCode": "1001",
|
||||
"createTime": "Apr 27, 2021 8:55:44 PM",
|
||||
"updateTime": "Apr 27, 2021 8:55:56 PM",
|
||||
"personNum": 1,
|
||||
"travelDistance": 0.3,
|
||||
"vehicleColour": "黑色",
|
||||
"lastBrandName": "",
|
||||
"headImgUrl": "https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83ep4YkeZqjiazTK87NQtYp6KMYvAdJcxNpxyJ2gibeNNheH1HFaJdX4hB15eIR3zZdGMWNanKzIn460w/132"
|
||||
}
|
||||
}
|
||||
@@ -6,19 +6,17 @@ import android.widget.CheckedTextView;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.constraintlayout.widget.Group;
|
||||
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.commons.mvp.IView;
|
||||
import com.mogo.commons.mvp.MvpFragment;
|
||||
import com.mogo.commons.mvp.Presenter;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.view.OnPreventFastClickListener;
|
||||
import com.mogo.och.view.FrameAnimImageView;
|
||||
import com.mogo.och.view.SlidePanelView;
|
||||
import com.mogo.service.adas.IMogoAdasOCHCallback;
|
||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||
import com.mogo.utils.UiThreadHandler;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
/**
|
||||
* 网约车基础Fragment,主要负责布局通用界面,处理站点面板和通话面板互斥情况
|
||||
@@ -34,9 +32,14 @@ public abstract class BaseOchFragment<V extends IView, P extends Presenter<V>> e
|
||||
protected SlidePanelView slidePanelView;
|
||||
private CheckedTextView ctvAutopilotStatus;
|
||||
protected TextView tvOperationStatus;
|
||||
public boolean isOperationStatus;//false-收车,true-出车
|
||||
private FrameLayout flStationPanelContainer;
|
||||
private Group groupTestPanel;
|
||||
|
||||
|
||||
/**
|
||||
* 滑动按钮触发的事件
|
||||
*/
|
||||
private final SlidePanelView.OnSlidePanelMoveToEndListener onSlideToEndListener = () -> {
|
||||
// 此处做一个代理,处理一下共有情况
|
||||
if (getSlidePanelOnEndListener() != null) {
|
||||
@@ -48,14 +51,17 @@ public abstract class BaseOchFragment<V extends IView, P extends Presenter<V>> e
|
||||
protected int getLayoutId() {
|
||||
return R.layout.module_mogo_och_base_fragment;
|
||||
}
|
||||
|
||||
private View panelView;
|
||||
|
||||
@Override
|
||||
protected void initViews() {
|
||||
groupTestPanel = findViewById(R.id.groupTestPanel);
|
||||
slidePanelView = findViewById(R.id.module_mogo_och_slide_panel);
|
||||
ctvAutopilotStatus = findViewById(R.id.module_mogo_och_autopilot_status);
|
||||
flStationPanelContainer = findViewById(R.id.module_mogo_och_station_panel_container);
|
||||
|
||||
tvOperationStatus = findViewById( R.id.module_mogo_och_operation_status );
|
||||
tvOperationStatus = findViewById(R.id.module_mogo_och_operation_status);
|
||||
|
||||
panelView = LayoutInflater.from(getContext()).inflate(getStationPanelViewId(), flStationPanelContainer);
|
||||
slidePanelView.setOnSlidePanelMoveToEndListener(onSlideToEndListener);
|
||||
@@ -68,46 +74,74 @@ public abstract class BaseOchFragment<V extends IView, P extends Presenter<V>> e
|
||||
}
|
||||
});
|
||||
|
||||
// debug下调用测试面板
|
||||
if (DebugConfig.isDebug()) {
|
||||
ctvAutopilotStatus.setOnLongClickListener(v -> {
|
||||
if (groupTestPanel.getVisibility() == View.VISIBLE) {
|
||||
groupTestPanel.setVisibility(View.GONE);
|
||||
} else {
|
||||
groupTestPanel.setVisibility(View.VISIBLE);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
onAutopilotStatusChanged(MogoApisHandler.getInstance().getApis().getAdasControllerApi().getAutopilotStatus() == IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING);
|
||||
|
||||
checkCallView(MogoApisHandler.getInstance().getApis().getStatusManagerApi().isCallViewShow());
|
||||
MogoApisHandler.getInstance().getApis().getStatusManagerApi().registerStatusChangedListener("Och", StatusDescriptor.CALL_VIEW, callViewListener);
|
||||
// 模拟 不可自动驾驶,目前场景是刚开机,adas还未和工控机连接
|
||||
findViewById(R.id.btnAutopilotDisable).setOnClickListener(view ->
|
||||
MogoApisHandler.getInstance().getApis()
|
||||
.getAdasControllerApi()
|
||||
.mockOchStatus(IMogoAdasOCHCallback.STATUS_AUTOPILOT_DISABLE, "不能使用")
|
||||
);
|
||||
|
||||
findViewById(R.id.btnAutopilotDisable).setOnClickListener(view -> MogoApisHandler.getInstance().getApis().getAdasControllerApi().mockOchStatus(IMogoAdasOCHCallback.STATUS_AUTOPILOT_DISABLE, "不能使用"));
|
||||
// 模拟 可自动驾驶,工控机连接正常,且处于人工干预状态
|
||||
findViewById(R.id.btnAutopilotEnable).setOnClickListener(view ->
|
||||
MogoApisHandler.getInstance().getApis()
|
||||
.getAdasControllerApi()
|
||||
.mockOchStatus(IMogoAdasOCHCallback.STATUS_AUTOPILOT_ENABLE, "能使用")
|
||||
);
|
||||
|
||||
findViewById(R.id.btnAutopilotEnable).setOnClickListener(view -> MogoApisHandler.getInstance().getApis().getAdasControllerApi().mockOchStatus(IMogoAdasOCHCallback.STATUS_AUTOPILOT_ENABLE, "能使用"));
|
||||
// 模拟 自动驾驶能力,自动驾驶中,可能是停车,可能是行进,但是是机器在处理车的前进后退,不是人
|
||||
findViewById(R.id.btnAutopilotRunning).setOnClickListener(view ->
|
||||
MogoApisHandler.getInstance().getApis()
|
||||
.getAdasControllerApi()
|
||||
.mockOchStatus(IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING, "Running")
|
||||
);
|
||||
|
||||
findViewById(R.id.btnAutopilotRunning).setOnClickListener(view -> MogoApisHandler.getInstance().getApis().getAdasControllerApi().mockOchStatus(IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING, "Running"));
|
||||
// 模拟 自动驾驶网约车回调数据
|
||||
findViewById(R.id.btnAutopilotArrive).setOnClickListener(view ->
|
||||
MogoApisHandler.getInstance().getApis()
|
||||
.getAdasControllerApi().mockOchStatus(-1, "Arrived")
|
||||
);
|
||||
|
||||
findViewById(R.id.btnAutopilotArrive).setOnClickListener(view -> MogoApisHandler.getInstance().getApis().getAdasControllerApi().mockOchStatus(-1, "Running"));
|
||||
|
||||
tvOperationStatus.setOnClickListener( view -> {
|
||||
tvOperationStatus.setOnClickListener(view -> {
|
||||
onChangeOperationStatus();
|
||||
} );
|
||||
}
|
||||
|
||||
protected void onChangeOperationStatus(){
|
||||
|
||||
}
|
||||
|
||||
private void checkCallView(boolean isShown) {
|
||||
if (flStationPanelContainer == null) {
|
||||
return;
|
||||
}
|
||||
if (isShown) {
|
||||
flStationPanelContainer.setTranslationY(131f);
|
||||
} else {
|
||||
flStationPanelContainer.setTranslationY(0f);
|
||||
}
|
||||
}
|
||||
|
||||
public void showSlidePanle(String text) {
|
||||
getActivity().runOnUiThread(() -> {
|
||||
slidePanelView.setText(text);
|
||||
slidePanelView.setVisibility(View.VISIBLE);
|
||||
});
|
||||
}
|
||||
|
||||
protected void onChangeOperationStatus() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 展示滑动按钮
|
||||
*
|
||||
* @param text 指定的文字
|
||||
*/
|
||||
public void showSlidePanle(String text) {
|
||||
if (isOperationStatus) {
|
||||
getActivity().runOnUiThread(() -> {
|
||||
slidePanelView.setText(text);
|
||||
slidePanelView.setVisibility(View.VISIBLE);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 隐藏滑动按钮
|
||||
*/
|
||||
public void hideSlidePanel() {
|
||||
getActivity().runOnUiThread(() -> {
|
||||
slidePanelView.setVisibility(View.GONE);
|
||||
@@ -131,6 +165,9 @@ public abstract class BaseOchFragment<V extends IView, P extends Presenter<V>> e
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 隐藏【自动驾驶】按钮
|
||||
*/
|
||||
public void hideAutopilotBiz() {
|
||||
getActivity().runOnUiThread(() -> {
|
||||
// ctvAutopilotStatus.setVisibility(View.GONE);
|
||||
@@ -138,6 +175,9 @@ public abstract class BaseOchFragment<V extends IView, P extends Presenter<V>> e
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 展示【自动驾驶】按钮
|
||||
*/
|
||||
public void showAutopilotBiz() {
|
||||
getActivity().runOnUiThread(() -> {
|
||||
ctvAutopilotStatus.setVisibility(View.VISIBLE);
|
||||
@@ -145,7 +185,7 @@ public abstract class BaseOchFragment<V extends IView, P extends Presenter<V>> e
|
||||
});
|
||||
}
|
||||
|
||||
public View getPanelView(){
|
||||
public View getPanelView() {
|
||||
return panelView;
|
||||
}
|
||||
|
||||
@@ -153,16 +193,9 @@ public abstract class BaseOchFragment<V extends IView, P extends Presenter<V>> e
|
||||
return null;
|
||||
}
|
||||
|
||||
private final IMogoStatusChangedListener callViewListener = (descriptor, isTrue) -> {
|
||||
if (descriptor == StatusDescriptor.CALL_VIEW) {
|
||||
checkCallView(isTrue);
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
MogoApisHandler.getInstance().getApis().getStatusManagerApi().unregisterStatusChangedListener("Och", StatusDescriptor.CALL_VIEW, callViewListener);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -64,7 +64,6 @@
|
||||
android:background="#f00"
|
||||
android:text="Disable"
|
||||
android:textSize="30sp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
@@ -75,8 +74,7 @@
|
||||
android:background="#0f0"
|
||||
android:text="Enable"
|
||||
android:textSize="30sp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/btnAutopilotDisable"
|
||||
app:layout_constraintTop_toBottomOf="@id/btnAutopilotDisable" />
|
||||
|
||||
<Button
|
||||
@@ -86,8 +84,7 @@
|
||||
android:background="#00f"
|
||||
android:text="Running"
|
||||
android:textSize="30sp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/btnAutopilotDisable"
|
||||
app:layout_constraintTop_toBottomOf="@id/btnAutopilotEnable" />
|
||||
|
||||
<Button
|
||||
@@ -97,14 +94,15 @@
|
||||
android:background="#f00"
|
||||
android:text="Arrived"
|
||||
android:textSize="30sp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/btnAutopilotDisable"
|
||||
app:layout_constraintTop_toBottomOf="@id/btnAutopilotRunning" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/groupTestPanel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:constraint_referenced_ids="btnAutopilotArrive,btnAutopilotDisable,btnAutopilotEnable,btnAutopilotRunning" />
|
||||
app:constraint_referenced_ids="btnAutopilotArrive,btnAutopilotDisable,btnAutopilotEnable,btnAutopilotRunning"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -470,7 +470,7 @@ public class DebugConfig {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public synchronized static String getStatusData(int type){
|
||||
if(type > 4){
|
||||
return sStatus[type].toString();
|
||||
|
||||
@@ -67,7 +67,7 @@ dependencies {
|
||||
implementation project(':foudations:mogo-commons')
|
||||
}
|
||||
|
||||
implementation 'com.zhidaoauto.machine:map:1.0.0-vr-8.5.10'
|
||||
implementation 'com.zhidaoauto.machine:map:1.0.0-vr-8.5.15'
|
||||
// implementation 'com.zhidaoauto.machine:map:1.0.0-vr-test-3.4'
|
||||
}
|
||||
|
||||
|
||||
@@ -762,23 +762,28 @@ public class AMapViewWrapper implements IMogoMapView,
|
||||
}
|
||||
}
|
||||
|
||||
if (mSelfMarker == null) { //TODO mAdasResultConvert
|
||||
if (mSelfMarker == null) {
|
||||
try {
|
||||
mSelfMarker = mMapView.getMapAutoViewHelper().getMyLocationStyle().getSelfMarker();
|
||||
mSelfMarker.setInfoWindowEnable(true);
|
||||
|
||||
} catch (Exception e) {
|
||||
}
|
||||
// } else {
|
||||
// WorkThreadHandler.getInstance().postDelayed(() -> {
|
||||
// mSelfMarker.marker3DIcon(R.raw.people);
|
||||
// }, 10000);
|
||||
|
||||
// if (mAdasResult.type == 1) { //通过不同的方向类型来改变车模,目前暂定三种模型,还未定
|
||||
// Log.d("liyz", "-------1------>")
|
||||
// mSelfMarker.marker3DIcon(R.raw.people);
|
||||
} else {
|
||||
// 通过不同的方向类型来改变车模,目前暂定三种模型,drawlevel 1 绿,2 黄,3 红,绿色的时候需要把相应的切换为默认模型
|
||||
// Logger.d("liyz", " mAdasResult.drawlevel = " + mAdasResult.drawlevel);
|
||||
// if (mAdasResult != null) {
|
||||
// if (mAdasResult.drawlevel == 1) {
|
||||
// mSelfMarker.marker3DIcon(R.raw.car);
|
||||
// } else if (mAdasResult.drawlevel == 2) { //不处理
|
||||
//
|
||||
// } else if (mAdasResult.drawlevel == 3) {
|
||||
// //继续判断相应的方位,目前是只有 前方 TODO
|
||||
// mSelfMarker.marker3DIcon(R.raw.car);
|
||||
// }
|
||||
// } else {
|
||||
// mSelfMarker.marker3DIcon(R.raw.car);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
showSelfSpeed(location.getSpeed());
|
||||
@@ -851,6 +856,7 @@ public class AMapViewWrapper implements IMogoMapView,
|
||||
@Override
|
||||
public void onMapLoaded() {
|
||||
Logger.i(TAG, "autoop--onMapLoaded: ");
|
||||
mMapView.getMapAutoViewHelper().setRenderFrequency(true,50);
|
||||
MogoMapListenerHandler.getInstance().onMapLoaded();
|
||||
mMapLoaded = true;
|
||||
CameraPosition cameraPosition = mMapView.getMapAutoViewHelper().getCameraPosition();
|
||||
|
||||
@@ -38,7 +38,7 @@ import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_T
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
public class MainLauncherActivity extends MainActivity implements IMogoIntentListener, IMogoStatusChangedListener, IV2XListener {
|
||||
public class MainLauncherActivity extends MainActivity implements IMogoIntentListener, IV2XListener {
|
||||
private static final String TAG = "MainLauncherActivity";
|
||||
protected boolean mIsHomeKeyDown = false;
|
||||
private static Handler handlerV2XEvent = new Handler();
|
||||
@@ -53,9 +53,6 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
|
||||
DebugConfig.setNeedRequestUserInfo(true);
|
||||
Log.d(TAG, "onCreate");
|
||||
mServiceApis.getV2XListenerManager().registerIntentListener(MogoReceiver.ACTION_V2X_FRONT_WARNING, this);
|
||||
mServiceApis.getStatusManagerApi().registerStatusChangedListener(TAG,
|
||||
StatusDescriptor.VR_MODE, this);
|
||||
DisplayEffectsHelper.getInstance().init(clSpecialEffect);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -164,28 +161,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
|
||||
Logger.d(TAG, "send msg to AI Voice");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
|
||||
FrameLayout.LayoutParams entranceParams = ((FrameLayout.LayoutParams) mEntrance.getLayoutParams());
|
||||
if (isTrue) {
|
||||
entranceParams.leftMargin = getResources().getDimensionPixelSize(R.dimen.module_main_entrance_fragment_container_marginLeft_in_vr_mode);
|
||||
mLeftShadowFrame.setVisibility(View.GONE);
|
||||
mApps.setVisibility(View.GONE);
|
||||
} else {
|
||||
entranceParams.leftMargin = getResources().getDimensionPixelSize(R.dimen.module_main_id_entrance_fragment_container_marginLeft);
|
||||
mLeftShadowFrame.setVisibility(View.VISIBLE);
|
||||
mApps.setVisibility(View.VISIBLE);
|
||||
}
|
||||
mEntrance.setLayoutParams(entranceParams);
|
||||
if (descriptor == StatusDescriptor.VR_MODE) {
|
||||
if (isTrue) {
|
||||
clSpecialEffect.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
clSpecialEffect.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warningChangedWithDirection(int type) {
|
||||
@@ -252,4 +228,15 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
|
||||
EXPIRE_TIMER = ALL_EXPIRE_TIMER;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
|
||||
if (isTrue) {
|
||||
mLeftShadowFrame.setVisibility(View.GONE);
|
||||
mApps.setVisibility(View.GONE);
|
||||
} else {
|
||||
mLeftShadowFrame.setVisibility(View.VISIBLE);
|
||||
mApps.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL
|
||||
MogoLatLng stopLineNew = Trigonometric.getNewLocation(data.getStopLines().get(1), 5, 180);
|
||||
MogoLatLng newLocation = Trigonometric.getNewLocation(mogoLatLng, 5, 180);
|
||||
|
||||
IMogoMarker marker = drawMarker(markerShowEntity);
|
||||
IMogoMarker marker = drawMarker(markerShowEntity, modeResType(data.getType()));
|
||||
//识别物
|
||||
marker.addDynamicAnchorPosition(new MogoLatLng(
|
||||
data.getDirection() == 1 ? data.getStopLines().get(1).lat : data.getCollisionLat(),
|
||||
@@ -111,14 +111,31 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL
|
||||
|
||||
}
|
||||
|
||||
//根据识别物类型 (行人0/自行车1/摩托车2/小汽车3/公交车4)获取3D模型(对应查看getModelRes)
|
||||
private int modeResType(int dataType) {
|
||||
switch (dataType) {
|
||||
case 0:
|
||||
return 1;
|
||||
case 1:
|
||||
return 2;
|
||||
case 2:
|
||||
return 4;
|
||||
case 3:
|
||||
return 3;
|
||||
case 4:
|
||||
return 6;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
public IMogoMarker drawMarker(MarkerShowEntity markerShowEntity) {
|
||||
|
||||
public IMogoMarker drawMarker(MarkerShowEntity markerShowEntity, int modeResType) {
|
||||
MogoMarkerOptions options = new MogoMarkerOptions()
|
||||
.object(markerShowEntity)
|
||||
.latitude(markerShowEntity.getMarkerLocation().getLat())
|
||||
.longitude(markerShowEntity.getMarkerLocation().getLon());
|
||||
IMarkerView iMarkerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity, options);
|
||||
options.icon3DRes(getModelRes(1)); //TODO
|
||||
options.icon3DRes(getModelRes(modeResType)); //TODO
|
||||
|
||||
options.anchorColor("#FB3C3CFF"); //红色#FF3036 蓝色:#256BFF
|
||||
IMogoMarker marker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext).addMarker(markerShowEntity.getMarkerType(), options);
|
||||
|
||||
@@ -10,14 +10,13 @@ import org.json.JSONObject;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public
|
||||
/*
|
||||
* @author congtaowang
|
||||
* @since 2020/12/14
|
||||
*
|
||||
* 实时坐标数据处理中心
|
||||
*/
|
||||
class SnapshotLocationController {
|
||||
/*
|
||||
* @author congtaowang
|
||||
* @since 2020/12/14
|
||||
*
|
||||
* 实时坐标数据处理中心
|
||||
*/
|
||||
public class SnapshotLocationController {
|
||||
|
||||
private static final String TAG = "SnapshotLocationController";
|
||||
|
||||
@@ -141,7 +140,7 @@ class SnapshotLocationController {
|
||||
mLastLocationInfo = null;
|
||||
}
|
||||
}
|
||||
Logger.d(TAG, "upload loc size = %s", list == null ? 0 : list.size());
|
||||
//Logger.d( TAG, "upload loc size = %s", list == null ? 0 : list.size() );
|
||||
return list;
|
||||
}
|
||||
|
||||
@@ -151,7 +150,7 @@ class SnapshotLocationController {
|
||||
* @return 精度
|
||||
*/
|
||||
public int getDataAccuracy() {
|
||||
Logger.d(TAG, "upload loc accuracy = %s", mDataAccuracy);
|
||||
//Logger.d( TAG, "upload loc accuracy = %s", mDataAccuracy );
|
||||
return mDataAccuracy;
|
||||
}
|
||||
|
||||
|
||||
@@ -185,12 +185,12 @@ public class CameraLiveNoticeHelper implements IMogoCloudOnMsgListener {
|
||||
|
||||
@Override
|
||||
public void onMsgSend(long id) {
|
||||
Logger.d(TAG, "onMsgSend id : " + id);
|
||||
//Logger.d(TAG, "onMsgSend id : " + id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMsgReceived(MogoSnapshotSetData mogoSnapshotSetData) {
|
||||
Logger.d(TAG, "onMsgReceived mogoSnapshotSetData : " + mogoSnapshotSetData);
|
||||
//Logger.d(TAG, "onMsgReceived mogoSnapshotSetData : " + mogoSnapshotSetData);
|
||||
renderMarker(mogoSnapshotSetData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,9 @@ import com.mogo.service.adas.IMogoADASControlStatusChangedListener;
|
||||
import com.mogo.service.fragmentmanager.FragmentStackTransactionListener;
|
||||
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
|
||||
import com.mogo.service.module.IMogoModuleProvider;
|
||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||
import com.mogo.service.statusmanager.IMogoStatusManager;
|
||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||
import com.mogo.service.v2x.IV2XListener;
|
||||
import com.mogo.skin.support.SkinMode;
|
||||
import com.mogo.utils.NetworkUtils;
|
||||
@@ -50,6 +52,7 @@ import java.util.List;
|
||||
*/
|
||||
public class MainActivity extends MvpActivity<MainView, MainPresenter> implements MainView,
|
||||
IMogoLocationListener,
|
||||
IMogoStatusChangedListener,
|
||||
IMogoADASControlStatusChangedListener,
|
||||
FragmentStackTransactionListener {
|
||||
|
||||
@@ -151,8 +154,9 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
|
||||
super.onCreate(savedInstanceState);
|
||||
ContextHolderUtil.holdContext(this);
|
||||
mPresenter.postLoadModuleMsg();
|
||||
|
||||
NetworkUtils.listenNetStrength(this);
|
||||
DisplayEffectsHelper.getInstance().init(clSpecialEffect);
|
||||
mServiceApis.getStatusManagerApi().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, this);
|
||||
}
|
||||
|
||||
private void init() {
|
||||
@@ -402,4 +406,23 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
|
||||
mServiceApis.getShareManager().releaseContext();
|
||||
mServiceApis.getSkinSupportInstallerApi().onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
|
||||
FrameLayout.LayoutParams entranceParams = ((FrameLayout.LayoutParams) mEntrance.getLayoutParams());
|
||||
if (isTrue) {
|
||||
entranceParams.leftMargin = getResources().getDimensionPixelSize(R.dimen.module_main_entrance_fragment_container_marginLeft_in_vr_mode);
|
||||
} else {
|
||||
entranceParams.leftMargin = getResources().getDimensionPixelSize(R.dimen.module_main_id_entrance_fragment_container_marginLeft);
|
||||
}
|
||||
mEntrance.setLayoutParams(entranceParams);
|
||||
if (descriptor == StatusDescriptor.VR_MODE) {
|
||||
if (isTrue) {
|
||||
clSpecialEffect.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
clSpecialEffect.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
<dimen name="module_main_header_fragment_container_marginTop">15px</dimen>
|
||||
<dimen name="module_main_header_fragment_container_marginLeft">460px</dimen>
|
||||
<dimen name="module_main_id_entrance_fragment_container_marginLeft">444px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_marginLeft_in_vr_mode" >0px</dimen>
|
||||
<dimen name="module_main_id_left_panel_fragment_container_width">350px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding">10px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding_top">16px</dimen>
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
<dimen name="module_main_header_fragment_container_marginTop">30px</dimen>
|
||||
<dimen name="module_main_header_fragment_container_marginLeft">830px</dimen>
|
||||
<dimen name="module_main_id_entrance_fragment_container_marginLeft">590px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_marginLeft_in_vr_mode" >0px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding">30px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding_top">70px</dimen>
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
<dimen name="module_main_header_fragment_container_marginTop">30px</dimen>
|
||||
<dimen name="module_main_header_fragment_container_marginLeft">830px</dimen>
|
||||
<dimen name="module_main_id_entrance_fragment_container_marginLeft">800px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_marginLeft_in_vr_mode" >0px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding">20px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding_top">30px</dimen>
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
<dimen name="module_main_header_fragment_container_marginTop">15px</dimen>
|
||||
<dimen name="module_main_header_fragment_container_marginLeft">460px</dimen>
|
||||
<dimen name="module_main_id_entrance_fragment_container_marginLeft">444px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_marginLeft_in_vr_mode" >0px</dimen>
|
||||
<dimen name="module_main_id_left_panel_fragment_container_width">350px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding">10px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding_top">16px</dimen>
|
||||
|
||||
@@ -11,7 +11,21 @@ public
|
||||
* @author congtaowang
|
||||
* @since 2021/3/26
|
||||
*
|
||||
* 描述
|
||||
* 生成测试数据,执行指令
|
||||
* java LocParse.java
|
||||
*
|
||||
* loc.txt
|
||||
* adas0.txt
|
||||
* adas1.txt
|
||||
* adas2.txt
|
||||
* adas3.txt
|
||||
* adas4.txt
|
||||
* adas5.txt
|
||||
* adas6.txt
|
||||
* adas7.txt
|
||||
* adas8.txt
|
||||
* adas9.txt
|
||||
*
|
||||
*/
|
||||
class LocParse {
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
31501
modules/mogo-module-service/src/main/assets/heng_0327.csv
Normal file
31501
modules/mogo-module-service/src/main/assets/heng_0327.csv
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -626,6 +626,9 @@ public class MockIntentHandler implements IntentHandler {
|
||||
private BufferedReader roadSizeBr;
|
||||
private JSONObject locJo = null;
|
||||
|
||||
/**
|
||||
* 处理模拟单Loc数据意图
|
||||
*/
|
||||
private void handleMockSingleLocDataIntent() throws Exception {
|
||||
if (locJo == null) {
|
||||
String locLine = "{\"systemTime\":1615529718585,\"satelliteTime\":1615529718585,\"lon\":116.73573385415098,\"lat\":40.19907712731953,\"alt\":34.4018669128417,\"heading\":0.342695406938048,\"speed\":0.003303937}";
|
||||
@@ -637,6 +640,9 @@ public class MockIntentHandler implements IntentHandler {
|
||||
mLocationMockHandler.sendEmptyMessageDelayed(100, 50L);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理路侧模拟数据意图
|
||||
*/
|
||||
private void handleRoadSideMockDataIntent() throws Exception {
|
||||
if (roadSizeBr == null) {
|
||||
roadSizeBr = new BufferedReader(new InputStreamReader(AbsMogoApplication.getApp().getAssets().open("roadSide.txt")));
|
||||
@@ -680,6 +686,7 @@ public class MockIntentHandler implements IntentHandler {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
super.handleMessage(msg);
|
||||
// 模拟处理当前车辆位置
|
||||
if (msg.what == 1) {
|
||||
try {
|
||||
if (!handleMockLocationIntent()) {
|
||||
@@ -694,7 +701,9 @@ public class MockIntentHandler implements IntentHandler {
|
||||
}
|
||||
br = null;
|
||||
}
|
||||
} else if (msg.what == 21) {
|
||||
}
|
||||
// 模拟远端数据
|
||||
else if (msg.what == 21) {
|
||||
try {
|
||||
handleMockSnapshotIntent2();
|
||||
} catch (Exception e) {
|
||||
@@ -705,7 +714,9 @@ public class MockIntentHandler implements IntentHandler {
|
||||
}
|
||||
|
||||
}
|
||||
} else if (msg.what == 3) {
|
||||
}
|
||||
// 模拟ADAS数据
|
||||
else if (msg.what == 3) {
|
||||
try {
|
||||
handleMockAdasIntent();
|
||||
} catch (Exception e) {
|
||||
@@ -720,13 +731,17 @@ public class MockIntentHandler implements IntentHandler {
|
||||
}
|
||||
readers = null;
|
||||
}
|
||||
} else if (msg.what == 100) {
|
||||
}
|
||||
// 模拟单个车数据
|
||||
else if (msg.what == 100) {
|
||||
try {
|
||||
handleMockSingleLocDataIntent();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else if (msg.what == 101) {
|
||||
}
|
||||
// 处理路侧模拟数据意图
|
||||
else if (msg.what == 101) {
|
||||
try {
|
||||
handleRoadSideMockDataIntent();
|
||||
} catch (Exception e) {
|
||||
@@ -737,7 +752,9 @@ public class MockIntentHandler implements IntentHandler {
|
||||
}
|
||||
roadSizeBr = null;
|
||||
}
|
||||
} else if (msg.what == 8) {
|
||||
}
|
||||
// 处理模拟Adas汽车意图
|
||||
else if (msg.what == 8) {
|
||||
try {
|
||||
handleMockAdasCarIntent();
|
||||
} catch (Exception e) {
|
||||
@@ -788,10 +805,12 @@ public class MockIntentHandler implements IntentHandler {
|
||||
public void handleMessage(Message msg) {
|
||||
super.handleMessage(msg);
|
||||
mLocDelay += 50;
|
||||
// 这里处理自车移动,延时4秒
|
||||
if (mLocDelay > 4_000L) {
|
||||
mLocationMockHandler1.sendEmptyMessageDelayed(1, 0L);
|
||||
}
|
||||
mLocationMockHandler.sendEmptyMessageDelayed(3, 0L);
|
||||
// 延时50毫秒重复发送自己
|
||||
mTimeTickHandler.sendEmptyMessageDelayed(0, 50L);
|
||||
}
|
||||
};
|
||||
@@ -811,6 +830,9 @@ public class MockIntentHandler implements IntentHandler {
|
||||
|
||||
private BufferedReader br;
|
||||
|
||||
/**
|
||||
* 处理模拟位置意图
|
||||
*/
|
||||
private boolean handleMockLocationIntent() throws Exception {
|
||||
if (br == null) {
|
||||
br = new BufferedReader(new InputStreamReader(AbsMogoApplication.getApp().getAssets().open("loc.txt")));
|
||||
@@ -826,12 +848,16 @@ public class MockIntentHandler implements IntentHandler {
|
||||
Log.i("mock-timer-loc-map", "cost " + (System.currentTimeMillis() - start) + "ms");
|
||||
SnapshotLocationController.getInstance().syncAdasLocationInfo(jo);
|
||||
Log.i("mock-timer-loc", "cost " + (System.currentTimeMillis() - start) + "ms");
|
||||
Log.i("mock-timer-loc-info",jo.toString());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private BufferedReader br4;
|
||||
|
||||
/**
|
||||
* 模拟快照意图
|
||||
*/
|
||||
private boolean handleMockSnapshotIntent2() throws Exception {
|
||||
if (br4 == null) {
|
||||
br4 = new BufferedReader(new InputStreamReader(AbsMogoApplication.getApp().getAssets().open("snapshot.txt")));
|
||||
@@ -862,6 +888,9 @@ public class MockIntentHandler implements IntentHandler {
|
||||
private BufferedReader[] readers = null;
|
||||
private BufferedReader[] readers2 = null;
|
||||
|
||||
/**
|
||||
* 处理模拟ADAS数据意图
|
||||
*/
|
||||
private boolean handleMockAdasIntent() throws Exception {
|
||||
final long start = System.currentTimeMillis();
|
||||
|
||||
@@ -889,6 +918,9 @@ public class MockIntentHandler implements IntentHandler {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理模拟Adas汽车意图
|
||||
*/
|
||||
private boolean handleMockAdasCarIntent() throws Exception {
|
||||
final long start = System.currentTimeMillis();
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@ import com.mogo.utils.ThreadPoolService;
|
||||
import com.mogo.utils.UiThreadHandler;
|
||||
import com.mogo.utils.ViewUtils;
|
||||
import com.mogo.utils.WorkThreadHandler;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
import com.zhidao.carchattingprovider.ICallChatResponse;
|
||||
|
||||
@@ -173,22 +174,18 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
|
||||
// 绘制近景识别到的车辆
|
||||
AdasRecognizedResultDrawer.getInstance().renderAdasRecognizedResult( resultList );
|
||||
|
||||
//添加自车的定位图标,碰撞只有一个预警,还需要和adas 联调,还需要改 liyz
|
||||
// ADASRecognizedResult result = null;
|
||||
// for (int i = 0; i < resultList.size(); i++) {
|
||||
// result = resultList.get(i);
|
||||
// if (result.type) { //找出可能碰撞的车
|
||||
// result = resultList.get(i);
|
||||
//添加自车的定位图标,碰撞只有一个预警,还需要和adas 联调,
|
||||
// for ( ADASRecognizedResult result : resultList) {
|
||||
// if (result.drawlevel == 3) { //找出可能碰撞的车
|
||||
// Logger.d("liyz", "result.drawlevel == 3 ------> ");
|
||||
//// 绘制他车的线,从列表中查出可能碰撞的车的经纬度(没有或者只有一个),然后预设20米的长度
|
||||
//// 绘制碰撞的他车指引线,需要实时给数据更新 TODO
|
||||
// drawLimberCollisionPolyline(result);
|
||||
// //通过这个传值到 AMapViewWrapper,根据数据更新自车的模型数据
|
||||
// MarkerServiceHandler.getApis().getMapServiceApi().getMapUIController().setAdasRecognizedResult(result);
|
||||
// }
|
||||
|
||||
//绘制他车的线,从列表中查出可能碰撞的车的经纬度(没有或者只有一个),然后预设20米的长度
|
||||
//绘制碰撞的他车指引线,需要实时给数据更新 TODO
|
||||
// drawLimberCollisionPolyline(result);
|
||||
// }
|
||||
|
||||
// //通过这个传值到 AMapViewWrapper,根据数据更新自车的模型数据 ADASRecognizedResult
|
||||
// MarkerServiceHandler.getApis().getMapServiceApi().getMapUIController().setAdasRecognizedResult(result);
|
||||
|
||||
|
||||
} );
|
||||
}
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ public class MogoReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
final String action = intent.getAction();
|
||||
Logger.d( TAG, action );
|
||||
//Logger.d( TAG, action );
|
||||
if (TextUtils.equals(VOICE_ACTION, action)) {
|
||||
String cmd = intent.getStringExtra(PARAM_COMMAND);
|
||||
if (!TextUtils.isEmpty(cmd)) {
|
||||
|
||||
@@ -64,7 +64,7 @@ public class V2XSocketManager {
|
||||
}
|
||||
register401007();
|
||||
register401009();
|
||||
register401019();
|
||||
register401020();
|
||||
|
||||
// TODO 这里是前瞻需求,量产版本需要注释
|
||||
register401003();
|
||||
@@ -230,7 +230,7 @@ public class V2XSocketManager {
|
||||
* * http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=52829799
|
||||
* * 最优路线推荐
|
||||
*/
|
||||
public void register401019() {
|
||||
public void register401020() {
|
||||
mV2XMessageListener_401020 = new V2XMessageListener_401020();
|
||||
// 道路事件,在线车辆绘制
|
||||
V2XServiceManager
|
||||
|
||||
@@ -54,7 +54,7 @@ public class V2XStatusManager {
|
||||
if (mLocation == null) {
|
||||
mLocation = new MogoLocation();
|
||||
}
|
||||
Logger.d(V2XConst.MODULE_NAME, "当前车辆位置:" + mLocation.toString());
|
||||
//Logger.d(V2XConst.MODULE_NAME, "当前车辆位置:" + mLocation.toString());
|
||||
return mLocation;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,37 +4,14 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.util.Log;
|
||||
|
||||
import com.mogo.map.MogoLatLng;
|
||||
import com.mogo.map.marker.IMogoMarker;
|
||||
import com.mogo.map.marker.MogoMarkerOptions;
|
||||
import com.mogo.map.overlay.IMogoPolyline;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.drawer.AdasRecognizedResultDrawer;
|
||||
import com.mogo.module.common.drawer.MarkerDrawer;
|
||||
import com.mogo.module.common.drawer.marker.AheadCollisionView;
|
||||
import com.mogo.module.common.drawer.marker.AheadCollisionWindow3DAdapter;
|
||||
import com.mogo.module.common.drawer.marker.EmptyMarkerView;
|
||||
import com.mogo.module.common.drawer.marker.SimpleWindow3DAdapter;
|
||||
import com.mogo.module.common.entity.MarkerShowEntity;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XWarningEntity;
|
||||
import com.mogo.module.common.utils.Trigonometric;
|
||||
import com.mogo.module.common.view.MarkerBaseFloor;
|
||||
import com.mogo.module.v2x.entity.model.DrawLineInfo;
|
||||
import com.mogo.module.v2x.listener.V2XWarnMessageListener;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.realtime.entity.ADASRecognizedResult;
|
||||
import com.mogo.utils.UiThreadHandler;
|
||||
import com.mogo.utils.ViewUtils;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static com.mogo.module.v2x.V2XServiceManager.getContext;
|
||||
|
||||
/**
|
||||
* desc : V2X报警事件管理,这里进行报警事件的分发处理,包括了adas数据
|
||||
@@ -83,7 +60,7 @@ public class V2XWaringManager {
|
||||
private void testData(String adasResult) {
|
||||
|
||||
try {
|
||||
int id = R.raw.scenario_warning_event_data;
|
||||
int id = R.raw.scenario_warning_event_data_right;
|
||||
switch (adasResult) {
|
||||
case "left":
|
||||
id = R.raw.scenario_warning_event_data_left;
|
||||
|
||||
@@ -70,6 +70,12 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog
|
||||
|
||||
@Override
|
||||
public void analysisV2XCloundDataEvent(V2XWarningEntity cloundWarningInfo) {
|
||||
//测试数据
|
||||
MogoLatLng s = new MogoLatLng(26.88394048,112.5678959);
|
||||
MogoLatLng t = new MogoLatLng(26.88393912,112.5678793);
|
||||
Double b = Trigonometric.getAngle(s.lon,s.lat,t.lon,t.lat);
|
||||
|
||||
|
||||
if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
|
||||
mCloundWarningInfo = cloundWarningInfo;
|
||||
showTime = mCloundWarningInfo.getShowTime();
|
||||
@@ -100,7 +106,7 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog
|
||||
//添加停止线marker
|
||||
handleStopLine();
|
||||
//自车画线
|
||||
drawSlefCarLine(carLocation.lon, carLocation.lat, bearing);
|
||||
drawSelfCarLine(carLocation.lon, carLocation.lat, bearing);
|
||||
}, 500);
|
||||
|
||||
UiThreadHandler.postDelayed(() -> {
|
||||
@@ -119,7 +125,7 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog
|
||||
V2XWarnDataDrawer.getInstance().renderWarnData(cloundWarningInfo);
|
||||
|
||||
//车辆静止的时候
|
||||
drawSlefCarLine(carLocation.lon, carLocation.lat, bearing);
|
||||
drawSelfCarLine(carLocation.lon, carLocation.lat, bearing);
|
||||
|
||||
}, 500);
|
||||
|
||||
@@ -261,13 +267,13 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog
|
||||
@Override
|
||||
public void onCarLocationChanged2(Location latLng) {
|
||||
// Log.d(V2XConst.LOG_NAME_WARN, "onCarLocationChanged2 lat = " + latLng.getLatitude() + "--lon =" + latLng.getLongitude() + "---isSelfLineClear = " + isSelfLineClear);
|
||||
if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
|
||||
// if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
|
||||
//当行人经纬度交点 开始画线,否则清理
|
||||
if (mCloundWarningInfo != null) {
|
||||
mCloundWarningInfo.setCarLocation(new MogoLatLng(latLng.getLatitude(), latLng.getLongitude()));
|
||||
}
|
||||
drawSlefCarLine(latLng.getLongitude(), latLng.getLatitude(), latLng.getBearing());
|
||||
}
|
||||
drawSelfCarLine(latLng.getLongitude(), latLng.getLatitude(), latLng.getBearing());
|
||||
// }
|
||||
carLocation = new MogoLatLng(latLng.getLatitude(), latLng.getLongitude());
|
||||
}
|
||||
|
||||
@@ -278,7 +284,7 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog
|
||||
/**
|
||||
* 自车为起点绘制(根据设计,前方行人/弱势交通参与者预警 getDirection() == ALERT_THE_FRONT_CRASH_WARNING_TOP自车与停止线之间为蓝色预警;其他侧方预警自车与预碰撞点之间显示红色预警)
|
||||
*/
|
||||
private void drawSlefCarLine(double lon, double lat, float bearing) {
|
||||
private void drawSelfCarLine(double lon, double lat, float bearing) {
|
||||
if (!isSelfLineClear) {
|
||||
IMogoPolyline mogoPolyline = V2XServiceManager.getMoGoWarnPolylineManager().getMogoWarnPolyline();
|
||||
if (mCloundWarningInfo != null) {
|
||||
@@ -291,9 +297,9 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog
|
||||
isFirstLocation = true;
|
||||
}
|
||||
|
||||
//自车位置
|
||||
endLatlng = new MogoLatLng(mCloundWarningInfo.getDirection() == ALERT_THE_FRONT_CRASH_WARNING_TOP ? middleLocationInStopLine.lat : mCloundWarningInfo.getCollisionLat(),
|
||||
mCloundWarningInfo.getDirection() == ALERT_THE_FRONT_CRASH_WARNING_TOP ? middleLocationInStopLine.lon : mCloundWarningInfo.getCollisionLon());
|
||||
//自车位置
|
||||
startLatlng = new MogoLatLng(lat, lon);
|
||||
float distance = CoordinateUtils.calculateLineDistance(startLatlng.lon, startLatlng.lat, endLatlng.lon, endLatlng.lat);
|
||||
addMiddleLoc = Trigonometric.getNewLocation(startLatlng, distance / 2, Trigonometric.getAngle(startLatlng.lon, startLatlng.lat, endLatlng.lon, endLatlng.lat));
|
||||
|
||||
@@ -263,7 +263,7 @@ public class V2XObuEventScenario extends AbsV2XScenario<V2XObuEventEntity> imple
|
||||
crossing.getLat(),
|
||||
(int) currentLocation.getBearing()
|
||||
);
|
||||
Logger.d("V2X_OBU_VIP", "监测是否需要进行vip弹框提醒\ndistance: " + distance + "\neventAngle: " + eventAngle + "\ntarget: " + crossing + "\ncurrent: " + currentLatLng);
|
||||
//Logger.d("V2X_OBU_VIP", "监测是否需要进行vip弹框提醒\ndistance: " + distance + "\neventAngle: " + eventAngle + "\ntarget: " + crossing + "\ncurrent: " + currentLatLng);
|
||||
if (distance <= DEFAULT_VIP_CROSSING_DISTANCE && 0 <= eventAngle && eventAngle <= 20) {
|
||||
//距离小于DEFAULT_VIP_CROSSING_DISTANCE,且夹角在0~20(说明在前方),则触发vip通行
|
||||
defaultTarget = crossing;
|
||||
|
||||
@@ -59,6 +59,7 @@ public class V2XWarningWindow extends V2XBasWindow implements IV2XWindow {
|
||||
private void initView(Context context) {
|
||||
LayoutInflater.from(context).inflate(R.layout.v2x_road_front_warning_vr, this);
|
||||
typeImage = findViewById(R.id.warning_type_image);
|
||||
|
||||
warningTextView = findViewById(R.id.warning_content_text);
|
||||
distance = findViewById(R.id.warning_distance);
|
||||
}
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
package com.mogo.module.v2x.utils;
|
||||
|
||||
import com.mogo.module.common.entity.MarkerExploreWay;
|
||||
import com.mogo.module.common.entity.MarkerLocation;
|
||||
import com.mogo.module.common.entity.MarkerResponse;
|
||||
import com.mogo.module.common.entity.MarkerShowEntity;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XPushMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XRoadEventEntity;
|
||||
import com.mogo.module.common.entity.V2XWarningEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.entity.net.V2XOptimalRouteDataRes;
|
||||
import com.mogo.module.v2x.entity.net.V2XSpecialCarRes;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
@@ -165,7 +162,7 @@ public class TestOnLineCarUtils {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(R.raw.scenario_warning_event_data);
|
||||
.openRawResource(R.raw.scenario_warning_event_data_right);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
int len = -1;
|
||||
byte[] buffer = new byte[1024];
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
android:paddingLeft="@dimen/dp_40"
|
||||
android:paddingRight="@dimen/dp_40"
|
||||
android:text="正在为您发起求助"
|
||||
android:textColor="@color/v2x_white"
|
||||
android:textColor="@color/v2x_white_color"
|
||||
android:textSize="@dimen/dp_32"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/iv_event"
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
"type": 1,
|
||||
"lat": 26.88299257,
|
||||
"lon": 112.5642132,
|
||||
"distance": 2,
|
||||
"collisionLat": 26.88299257,
|
||||
"collisionLon": 112.5642132,
|
||||
"stopLines": [
|
||||
{
|
||||
"lat": 26.88299297,
|
||||
"lon": 112.5642142
|
||||
},
|
||||
{
|
||||
"lat": 26.88299287,
|
||||
"lon": 112.5642132
|
||||
}
|
||||
],
|
||||
"from": 1,
|
||||
"angle": 0,
|
||||
"direction": 10015,
|
||||
"speed": 11.108121,
|
||||
"targetColor": "#FF4040",
|
||||
"stopLineDistance": 60,
|
||||
"warningContent": "注意自行车",
|
||||
"heading": 0,
|
||||
"showTime": 8000,
|
||||
"roadwidth": 4.0
|
||||
}
|
||||
@@ -1,18 +1,18 @@
|
||||
{
|
||||
"type": 2,
|
||||
"lat": 26.88299257,
|
||||
"lon": 112.5642132,
|
||||
"type": 1,
|
||||
"lat": 26.879390180525974,
|
||||
"lon": 112.56927332599024,
|
||||
"distance": 2,
|
||||
"collisionLat": 26.88299257,
|
||||
"collisionLon": 112.5642132,
|
||||
"collisionLat": 26.879413602631494,
|
||||
"collisionLon": 112.56942224899758,
|
||||
"stopLines": [
|
||||
{
|
||||
"lat": 26.88299297,
|
||||
"lon": 112.5642142
|
||||
"lat": 26.88008312,
|
||||
"lon": 112.57147295
|
||||
},
|
||||
{
|
||||
"lat": 26.88299287,
|
||||
"lon": 112.5642132
|
||||
"lat": 26.88008302,
|
||||
"lon": 112.57147295
|
||||
}
|
||||
],
|
||||
"from": 1,
|
||||
@@ -21,7 +21,7 @@
|
||||
"speed": 11.108121,
|
||||
"targetColor": "#FF4040",
|
||||
"stopLineDistance": 60,
|
||||
"warningContent": "注意摩托车",
|
||||
"warningContent": "注意自行车",
|
||||
"heading": 0,
|
||||
"showTime": 8000,
|
||||
"roadwidth": 4.0
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
{
|
||||
"type": 0,
|
||||
"lat": 26.88299257,
|
||||
"lon": 112.5642132,
|
||||
"lat": 26.91837250865101,
|
||||
"lon": 112.5631081,
|
||||
"distance": 2,
|
||||
"collisionLat": 26.88299257,
|
||||
"collisionLon": 112.5642132,
|
||||
"collisionLat": 26.91837250865101,
|
||||
"collisionLon": 112.5631081,
|
||||
"stopLines": [
|
||||
{
|
||||
"lat": 26.88299297,
|
||||
"lon": 112.5642142
|
||||
"lat": 26.91837250865101,
|
||||
"lon": 112.5631081
|
||||
},
|
||||
{
|
||||
"lat": 26.88299287,
|
||||
"lon": 112.5642132
|
||||
"lat": 26.91840847737797,
|
||||
"lon": 112.5631081
|
||||
}
|
||||
],
|
||||
"from": 1,
|
||||
"angle": 0,
|
||||
"angle": 264,
|
||||
"direction": 10013,
|
||||
"speed": 11.108121,
|
||||
"targetColor": "#FF4040",
|
||||
"stopLineDistance": 60,
|
||||
"warningContent": "注意行人",
|
||||
"warningContent": "小心行人",
|
||||
"heading": 0,
|
||||
"showTime": 8000,
|
||||
"roadwidth": 4.0
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"type": 2,
|
||||
"lat": 26.879413602631494,
|
||||
"lon": 112.56942224899758,
|
||||
"distance": 2,
|
||||
"collisionLat": 26.879393211872856,
|
||||
"collisionLon": 112.56917110603266,
|
||||
"stopLines": [
|
||||
{
|
||||
"lat": 26.88008312,
|
||||
"lon": 112.57147295
|
||||
},
|
||||
{
|
||||
"lat": 26.88008302,
|
||||
"lon": 112.57147295
|
||||
}
|
||||
],
|
||||
"from": 1,
|
||||
"angle": 0,
|
||||
"direction": 10015,
|
||||
"speed": 11.108121,
|
||||
"targetColor": "#FF4040",
|
||||
"stopLineDistance": 60,
|
||||
"warningContent": "注意摩托车",
|
||||
"heading": 0,
|
||||
"showTime": 8000,
|
||||
"roadwidth": 4.0
|
||||
}
|
||||
@@ -72,6 +72,7 @@ public class AdasObjectUtils {
|
||||
result.carId = model.getCarId();
|
||||
result.dataAccuracy = model.dataAccuracy;
|
||||
result.distance = model.distance;
|
||||
// result.drawlevel = model.drawlevel; //liyz
|
||||
result.mortonCode = MortonCode.wrapEncodeMorton(result.lon, result.lat);
|
||||
IMogoMapUIController mogoMapUIController = ARouter.getInstance().navigation(IMogoServiceApis.class).getMapServiceApi().getMapUIController();
|
||||
if (mogoMapUIController != null) {
|
||||
|
||||
@@ -191,7 +191,7 @@ public class MogoADASController implements IMogoADASController {
|
||||
model.setSpeed( bean.getSpeed() );
|
||||
model.setDataAccuracy( bean.getDataAccuracy() );
|
||||
model.setDistance( bean.getDistance() );
|
||||
|
||||
// model.set
|
||||
|
||||
data.add( model );
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ public class GlideImageLoader implements IMogoImageloader {
|
||||
@Override
|
||||
public void displayImage( String url, MogoImageView imageView, int width, int height, final IMogoImageLoaderListener listener ) {
|
||||
|
||||
Logger.d( TAG, "url = %s", url );
|
||||
//Logger.d( TAG, "url = %s", url );
|
||||
|
||||
if ( listener != null ) {
|
||||
listener.onStart();
|
||||
|
||||
Reference in New Issue
Block a user