Fix small map location follow bug

This commit is contained in:
董宏宇
2021-06-23 21:13:45 +08:00
parent 199cbebd6d
commit a55759fa00
7 changed files with 45 additions and 14 deletions

View File

@@ -20,7 +20,7 @@ import com.mogo.module.main.cards.MogoModulesManager;
import com.mogo.module.service.receiver.MogoReceiver;
import com.mogo.och.IMogoOCH;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.map.IMogoSmallMapProvider;
import com.mogo.service.smp.IMogoSmallMapProvider;
import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.service.v2x.IV2XWarningListener;
import com.mogo.utils.logger.Logger;

View File

@@ -90,6 +90,15 @@ public class SmallMapDirectionView extends RelativeLayout implements IMogoCarLoc
});
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
// 注册定位监听
SmpServiceManager.getMogoRegisterCenter()
.unregisterCarLocationChangedListener(MODULE_NAME, this);
}
private void initAMapView() {
// 车头朝上
mAMapNaviView.setNaviMode(AMapNaviView.CAR_UP_MODE);
@@ -104,7 +113,8 @@ public class SmallMapDirectionView extends RelativeLayout implements IMogoCarLoc
mAMap.setTrafficEnabled(false);
mAMapNavi = AMapNavi.getInstance(getContext());
mAMapNavi.setIsUseExtraGPSData(false);
//使用外部GPS数据
mAMapNavi.setIsUseExtraGPSData(true);
new Thread(() -> {
try {

View File

@@ -17,13 +17,11 @@ import com.mogo.commons.AbsMogoApplication;
* @date 2021/5/19 10:50 上午
*/
public class SmallMapFragment extends Fragment {
private Context mContext;
protected View mRootView;
@Override
public void onAttach(Context context) {
super.onAttach(context);
mContext = context;
}
@Nullable

View File

@@ -6,13 +6,16 @@ import android.util.Log;
import androidx.fragment.app.FragmentActivity;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.MogoLatLng;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.map.IMogoSmallMapProvider;
import com.mogo.service.smp.IMogoSmallMapProvider;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.utils.logger.Logger;
import java.util.List;
/**
* @author donghongyu
* @date 12/10/20 1:34 PM
@@ -32,9 +35,7 @@ public class SmallMapProvider implements IMogoSmallMapProvider, IMogoStatusChang
Log.d(TAG, "小地图模块初始化……init(FragmentActivity activity, int containerId)");
mActivity = activity;
mContainerId = containerId;
Logger.d(TAG, "addSmallMapView");
SmpServiceManager.init(mActivity);
}
@Override
@@ -86,6 +87,16 @@ public class SmallMapProvider implements IMogoSmallMapProvider, IMogoStatusChang
}
@Override
public void drawablePolyline(List<MogoLatLng> coordinates) {
}
@Override
public void clearPolyline() {
}
@Override
public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
Log.d(TAG, "onStatusChanged……descriptor=" + descriptor + "isTrue=" + isTrue);

View File

@@ -19,7 +19,7 @@ import com.mogo.service.launcher.IMogoLauncher;
import com.mogo.service.locationinfo.IMogoLocationInfoService;
import com.mogo.service.map.IMogoMapFrameController;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.map.IMogoSmallMapProvider;
import com.mogo.service.smp.IMogoSmallMapProvider;
import com.mogo.service.module.IMogoActionManager;
import com.mogo.service.module.IMogoAddressManager;
import com.mogo.service.module.IMogoMarkerService;

View File

@@ -1,10 +1,12 @@
package com.mogo.service.map;
package com.mogo.service.smp;
import androidx.annotation.IdRes;
import androidx.fragment.app.FragmentActivity;
import com.alibaba.android.arouter.facade.template.IProvider;
import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.map.MogoLatLng;
import java.util.List;
/**
* @author donghongyu
@@ -18,7 +20,7 @@ public interface IMogoSmallMapProvider extends IProvider {
* @param activity
* @param containerId 容器ID
*/
void init(FragmentActivity activity, @IdRes int containerId );
void init(FragmentActivity activity, @IdRes int containerId);
/**
* 显示面板
@@ -32,7 +34,18 @@ public interface IMogoSmallMapProvider extends IProvider {
/**
* 修改轮盘角度
*
* @param angle 角度值 0-359
*/
void changeAngle(double angle);
/**
* 绘制路径线
*/
void drawablePolyline(List<MogoLatLng> coordinates);
/**
* 清除路径线
*/
void clearPolyline();
}

View File

@@ -1,7 +1,6 @@
package com.mogo.service.impl;
import android.content.Context;
import android.util.Log;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.facade.template.IProvider;
@@ -28,7 +27,7 @@ import com.mogo.service.launcher.IMogoLauncher;
import com.mogo.service.locationinfo.IMogoLocationInfoService;
import com.mogo.service.map.IMogoMapFrameController;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.map.IMogoSmallMapProvider;
import com.mogo.service.smp.IMogoSmallMapProvider;
import com.mogo.service.module.IMogoActionManager;
import com.mogo.service.module.IMogoAddressManager;
import com.mogo.service.module.IMogoMarkerService;