增加接口
/**
     * 获取车道中心线信息
     */
    fun getCenterLineInfo(lon: Double, lat: Double, angle: Float): CenterLine?

Signed-off-by: donghongyu <donghongyu@zhidaoauto.com>
This commit is contained in:
donghongyu
2022-03-28 18:47:55 +08:00
parent c82c3234ba
commit 4849ec413f
18 changed files with 277 additions and 656 deletions

View File

@@ -10,6 +10,7 @@ import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.eagle.core.data.constants.MoGoFragmentPaths;
import com.mogo.eagle.core.data.constants.MogoServicePaths;
import com.mogo.eagle.core.data.map.CenterLine;
import com.mogo.eagle.core.function.api.map.IMogoMapFrameController;
import com.mogo.eagle.core.function.api.map.hd.IMoGoMapFragmentProvider;
import com.mogo.eagle.core.function.call.base.CallerBase;
@@ -18,8 +19,6 @@ import com.mogo.map.IMogoUiSettings;
import com.mogo.map.MogoMapView;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.service.IMogoServiceApis;
/**
* @author donghongyu
@@ -29,7 +28,7 @@ import com.mogo.service.IMogoServiceApis;
* 地图图层,地图操作都在这个图层完成
*/
@Route(path = MoGoFragmentPaths.PATH_FRAGMENT_MAP)
public class MapFragment extends MvpFragment< MapView, MapPresenter >
public class MapFragment extends MvpFragment<MapView, MapPresenter>
implements MapView, IMogoMapFrameController, IMoGoMapFragmentProvider {
private static final String TAG = "MapFragment";
@@ -55,7 +54,7 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter >
}
@Override
public void initDelegate( IMogoMapFrameController controller ) {
public void initDelegate(IMogoMapFrameController controller) {
// do not implement
}
@@ -67,55 +66,55 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter >
@Override
public void changeToVRMode() {
try {
mMogoMapView.getMap().getUIController().changeMapMode( EnumMapUI.Type_VR);
} catch ( Exception e ) {
mMogoMapView.getMap().getUIController().changeMapMode(EnumMapUI.Type_VR);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void init( Context context ) {
public void init(Context context) {
// do not implement
}
@Override
protected void initViews( Bundle savedInstanceState ) {
super.initViews( savedInstanceState );
mMogoMapView = findViewById( R.id.module_map_id_map );
mMogoMapView.onCreate( savedInstanceState );
protected void initViews(Bundle savedInstanceState) {
super.initViews(savedInstanceState);
mMogoMapView = findViewById(R.id.module_map_id_map);
mMogoMapView.onCreate(savedInstanceState);
mMogoMap = mMogoMapView.getMap();
if ( mMogoMap != null ) {
mMogoMap.getUIController().showMyLocation( true );
if (mMogoMap != null) {
mMogoMap.getUIController().showMyLocation(true);
}
}
@NonNull
@Override
protected MapPresenter createPresenter() {
return new MapPresenter( this );
return new MapPresenter(this);
}
@Override
public void onActivityCreated( @Nullable Bundle savedInstanceState ) {
super.onActivityCreated( savedInstanceState );
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initMapView();
}
@Override
public void onSaveInstanceState( @NonNull Bundle outState ) {
super.onSaveInstanceState( outState );
if ( mMogoMapView != null ) {
mMogoMapView.onSaveInstanceState( outState );
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
if (mMogoMapView != null) {
mMogoMapView.onSaveInstanceState(outState);
}
}
@Override
public void onPause() {
super.onPause();
if ( mIsControllerByOthersStatus ) {
if (mIsControllerByOthersStatus) {
return;
}
if ( mMogoMapView != null ) {
if (mMogoMapView != null) {
mMogoMapView.onPause();
}
}
@@ -123,10 +122,10 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter >
@Override
public void onResume() {
super.onResume();
if ( mIsControllerByOthersStatus ) {
if (mIsControllerByOthersStatus) {
return;
}
if ( mMogoMapView != null ) {
if (mMogoMapView != null) {
mMogoMapView.onResume();
}
}
@@ -134,38 +133,38 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter >
@Override
public void onLowMemory() {
super.onLowMemory();
if ( mMogoMapView != null ) {
if (mMogoMapView != null) {
mMogoMapView.onLowMemory();
}
}
private void initMapView() {
mMogoMap = mMogoMapView.getMap();
if ( mMogoMap == null ) {
if (mMogoMap == null) {
return;
}
IMogoUiSettings uiSettings = mMogoMap.getUiSettings();
if ( uiSettings != null ) {
if (uiSettings != null) {
//设置所有手势是否可用
uiSettings.setAllGesturesEnabled( true );
uiSettings.setAllGesturesEnabled(true);
//设置指南针是否可见。
uiSettings.setCompassEnabled( false );
uiSettings.setCompassEnabled(false);
//设置室内地图楼层切换控件是否可见。
uiSettings.setIndoorSwitchEnabled( true );
uiSettings.setIndoorSwitchEnabled(true);
//设置定位按钮是否可见。
uiSettings.setMyLocationButtonEnabled( false );
uiSettings.setMyLocationButtonEnabled(false);
//设置旋转手势是否可用。
uiSettings.setRotateGesturesEnabled( false );
uiSettings.setRotateGesturesEnabled(false);
//设置比例尺控件是否可见
uiSettings.setScaleControlsEnabled( true );
uiSettings.setScaleControlsEnabled(true);
//设置拖拽手势是否可用。
uiSettings.setScrollGesturesEnabled( true );
uiSettings.setScrollGesturesEnabled(true);
//设置倾斜手势是否可用。
uiSettings.setTiltGesturesEnabled( true );
uiSettings.setTiltGesturesEnabled(true);
//设置缩放按钮是否可见。
uiSettings.setZoomControlsEnabled( false );
uiSettings.setZoomControlsEnabled(false);
//设置双指缩放手势是否可用。
uiSettings.setZoomGesturesEnabled( true );
uiSettings.setZoomGesturesEnabled(true);
}
}
@@ -181,7 +180,7 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter >
@Override
public void onDestroyView() {
if ( mMogoMapView != null ) {
if (mMogoMapView != null) {
mMogoMapView.onDestroy();
mMogoMapView = null;
mMogoMap = null;
@@ -208,6 +207,7 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter >
/**
* sight mode
*
* @param mode
*/
public static final int SIGHT_MODE_NORMAL = 0;
@@ -218,13 +218,13 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter >
@Override
public void setMapDAngle(int mode) {
float angle = getSightModeAngle(mode);
float angle = getSightModeAngle(mode);
mMogoMapView.getMap().getUIController().setMapDAngle(angle);
}
private float getSightModeAngle(int mode) {
float angle = 0.0f;
switch (mode){
switch (mode) {
case SIGHT_MODE_NORMAL:
angle = 16.5f;
case SIGHT_MODE_TOP:
@@ -239,4 +239,9 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter >
return angle;
}
@Nullable
@Override
public CenterLine getCenterLineInfo(double lon, double lat, float angle) {
return mMogoMapView.getMap().getUIController().getCenterLineInfo(lon, lat, angle);
}
}