[Change]
增加接口
/**
* 获取车道中心线信息
*/
fun getCenterLineInfo(lon: Double, lat: Double, angle: Float): CenterLine?
Signed-off-by: donghongyu <donghongyu@zhidaoauto.com>
This commit is contained in:
@@ -65,7 +65,7 @@ class SpeedPanelView @JvmOverloads constructor(
|
||||
override fun run() {
|
||||
if (mLatLng != null) {
|
||||
mSpeedLimmit = MogoMapUIController.getInstance()
|
||||
.getSpeedLimmit(mLatLng!!.longitude, mLatLng!!.latitude, mLatLng!!.bearing)
|
||||
.getLimitSpeed(mLatLng!!.longitude, mLatLng!!.latitude, mLatLng!!.bearing)
|
||||
UiThreadHandler.post {
|
||||
val speed = (mLatLng!!.speed * 3.6f).toInt()
|
||||
mSpeedChartView.setArcColor(Color.parseColor(if (speed > mSpeedLimmit) "#DB3137" else "#3E77F6"))
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,10 @@ import com.mogo.module.common.MogoApisHandler;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
/**
|
||||
* 限速
|
||||
* @author mogoauto
|
||||
*/
|
||||
public class SpeedLimitDataManager implements IMogoCarLocationChangedListener2 {
|
||||
|
||||
private static SpeedLimitDataManager instance ;
|
||||
@@ -35,7 +39,7 @@ public class SpeedLimitDataManager implements IMogoCarLocationChangedListener2 {
|
||||
public void run() {
|
||||
if (mLocation != null){
|
||||
if (MogoMapUIController.getInstance() != null) {
|
||||
int speedLimmit = MogoMapUIController.getInstance().getSpeedLimmit(mLocation.getLongitude(), mLocation.getLatitude(), mLocation.getBearing());
|
||||
int speedLimmit = MogoMapUIController.getInstance().getLimitSpeed(mLocation.getLongitude(), mLocation.getLatitude(), mLocation.getBearing());
|
||||
UiThreadHandler.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.mogo.eagle.core.data.map
|
||||
|
||||
|
||||
/**
|
||||
* 道路中心经纬度集合
|
||||
*/
|
||||
class CenterLine {
|
||||
var id = "" //id
|
||||
var tile_id = "" //瓦片id
|
||||
var road_id = ""//道路id
|
||||
var lane_id = ""//车道id
|
||||
var points: ArrayList<LonLatPoint>? = null//道路经纬度
|
||||
var angle: Double? = 0.0//车道线id
|
||||
override fun toString(): String {
|
||||
return "CenterLine(id='$id', tile_id='$tile_id', road_id='$road_id', lane_id='$lane_id', points=$points, angle=$angle)"
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
package com.mogo.eagle.core.data.map;
|
||||
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class LonLatPoint implements Serializable {
|
||||
|
||||
private double longitude;
|
||||
private double latitude;
|
||||
private double altitude;
|
||||
private int duration;
|
||||
private double angle = 0;
|
||||
private String provider;
|
||||
private double distance;
|
||||
private double speed;
|
||||
|
||||
public LonLatPoint() {
|
||||
}
|
||||
|
||||
public LonLatPoint(double longitude, double latitude) {
|
||||
this.longitude = longitude;
|
||||
this.latitude = latitude;
|
||||
}
|
||||
|
||||
public LonLatPoint(double longitude, double latitude, double angle) {
|
||||
this.longitude = longitude;
|
||||
this.latitude = latitude;
|
||||
this.angle = angle;
|
||||
}
|
||||
|
||||
public LonLatPoint(double longitude, double latitude, double altitude, double angle) {
|
||||
this.longitude = longitude;
|
||||
this.latitude = latitude;
|
||||
this.altitude = altitude;
|
||||
this.angle = angle;
|
||||
}
|
||||
|
||||
public String getProvider() {
|
||||
return provider;
|
||||
}
|
||||
|
||||
public void setProvider(String provider) {
|
||||
this.provider = provider;
|
||||
}
|
||||
|
||||
public int getDuration() {
|
||||
return duration;
|
||||
}
|
||||
|
||||
public void setDuration(int duration) {
|
||||
this.duration = duration;
|
||||
}
|
||||
|
||||
public double getLongitude() {
|
||||
return longitude;
|
||||
}
|
||||
|
||||
public void setLongitude(double longitude) {
|
||||
this.longitude = longitude;
|
||||
}
|
||||
|
||||
public double getLatitude() {
|
||||
return latitude;
|
||||
}
|
||||
|
||||
public void setLatitude(double latitude) {
|
||||
this.latitude = latitude;
|
||||
}
|
||||
|
||||
public double getAltitude() {
|
||||
return altitude;
|
||||
}
|
||||
|
||||
public void setAltitude(double altitude) {
|
||||
this.altitude = altitude;
|
||||
}
|
||||
|
||||
public double getAngle() {
|
||||
return angle;
|
||||
}
|
||||
|
||||
public void setAngle(double angle) {
|
||||
this.angle = angle;
|
||||
}
|
||||
|
||||
public double getDistance() {
|
||||
return distance;
|
||||
}
|
||||
|
||||
public void setDistance(double distance) {
|
||||
this.distance = distance;
|
||||
}
|
||||
|
||||
public double getSpeed() {
|
||||
return speed;
|
||||
}
|
||||
|
||||
public void setSpeed(double speed) {
|
||||
this.speed = speed;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "LonLatPoint{" +
|
||||
"longitude=" + longitude +
|
||||
", latitude=" + latitude +
|
||||
", altitude=" + altitude +
|
||||
", angle=" + angle +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.mogo.eagle.core.function.api.map.hd
|
||||
|
||||
import androidx.annotation.RawRes
|
||||
import com.mogo.eagle.core.data.map.CenterLine
|
||||
import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider
|
||||
|
||||
/**
|
||||
@@ -28,4 +29,9 @@ interface IMoGoMapFragmentProvider : IMoGoFunctionServerProvider {
|
||||
* 设置地图视线角度
|
||||
*/
|
||||
fun setMapDAngle(mode: Int)
|
||||
|
||||
/**
|
||||
* 获取车道中心线信息
|
||||
*/
|
||||
fun getCenterLineInfo(lon: Double, lat: Double, angle: Float): CenterLine?
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package com.mogo.eagle.core.function.call.map
|
||||
import androidx.annotation.RawRes
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.eagle.core.data.constants.MoGoFragmentPaths
|
||||
import com.mogo.eagle.core.data.map.CenterLine
|
||||
import com.mogo.eagle.core.function.api.map.hd.IMoGoMapFragmentProvider
|
||||
import com.mogo.eagle.core.function.call.base.CallerBase
|
||||
|
||||
@@ -14,7 +15,7 @@ import com.mogo.eagle.core.function.call.base.CallerBase
|
||||
object CallerHDMapManager : CallerBase() {
|
||||
private val mapProviderApi: IMoGoMapFragmentProvider
|
||||
get() = ARouter.getInstance().build(MoGoFragmentPaths.PATH_FRAGMENT_MAP)
|
||||
.navigation() as IMoGoMapFragmentProvider;
|
||||
.navigation() as IMoGoMapFragmentProvider;
|
||||
|
||||
/**
|
||||
* 修改地图中心点
|
||||
@@ -32,11 +33,21 @@ object CallerHDMapManager : CallerBase() {
|
||||
* 修改高精地图自车图标
|
||||
* 传入资源ID
|
||||
*/
|
||||
fun changeCurrentIcon(@RawRes iconId: Int){
|
||||
fun changeCurrentIcon(@RawRes iconId: Int) {
|
||||
mapProviderApi.changeCurrentIcon(iconId)
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置地图视线角度
|
||||
*/
|
||||
fun setMapDAngle(mode: Int) {
|
||||
mapProviderApi.setMapDAngle(mode)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取车道中心线信息
|
||||
*/
|
||||
fun getCenterLineInfo(lon: Double, lat: Double, angle: Float): CenterLine? {
|
||||
return mapProviderApi.getCenterLineInfo(lon, lat, angle)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user