2.2.0 绘制重点marker 调整
This commit is contained in:
@@ -213,7 +213,7 @@ public class SmallMapDirectionView
|
||||
);
|
||||
|
||||
Log.d(TAG, "calculateDistance=" + calculateDistance);
|
||||
if (calculateDistance <= 20) {
|
||||
if (calculateDistance <= 5) {
|
||||
clearPolyline();
|
||||
mCoordinatesLatLng.clear();
|
||||
}
|
||||
|
||||
@@ -8,15 +8,22 @@ import android.view.View;
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.commons.mvp.BaseFragment;
|
||||
import com.mogo.eagle.core.data.autopilot.ADASTrajectoryInfo;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotGuardianStatusInfo;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotRouteInfo;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStationInfo;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo;
|
||||
import com.mogo.eagle.core.data.constants.MoGoFragmentPaths;
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningListener;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.function.api.map.smp.IMogoSmallMapProvider;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.service.adas.IMogoAdasOCHCallback;
|
||||
import com.mogo.utils.UiThreadHandler;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -26,7 +33,7 @@ import java.util.List;
|
||||
* @date 2021/5/19 10:50 上午
|
||||
*/
|
||||
@Route(path = MoGoFragmentPaths.PATH_FRAGMENT_SMP)
|
||||
public class SmallMapFragment extends BaseFragment implements IMogoSmallMapProvider, IMoGoAutopilotPlanningListener, IMogoAdasOCHCallback {
|
||||
public class SmallMapFragment extends BaseFragment implements IMogoSmallMapProvider, IMoGoAutopilotPlanningListener, IMogoAdasOCHCallback , IMoGoAutopilotStatusListener {
|
||||
private final String TAG = "SmallMapFragment";
|
||||
protected SmallMapDirectionView mSmallMapDirectionView;
|
||||
|
||||
@@ -73,7 +80,12 @@ public class SmallMapFragment extends BaseFragment implements IMogoSmallMapProvi
|
||||
public void drawablePolyline(List<MogoLatLng> coordinates) {
|
||||
if (mSmallMapDirectionView != null) {
|
||||
mSmallMapDirectionView.convert(coordinates);
|
||||
mSmallMapDirectionView.drawablePolyline();
|
||||
UiThreadHandler.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
mSmallMapDirectionView.drawablePolyline();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,8 +145,28 @@ public class SmallMapFragment extends BaseFragment implements IMogoSmallMapProvi
|
||||
|
||||
@Override
|
||||
public void onStateChanged(int state, String reason) {
|
||||
if (state != IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autoPilotStatusInfo) {
|
||||
if (autoPilotStatusInfo.getControl_pilotmode() != 1){
|
||||
clearPolyline();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotArriveAtStation(@Nullable AutopilotStationInfo autopilotWayArrive) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotGuardian(@Nullable AutopilotGuardianStatusInfo guardianInfo) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotSNRequest() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,20 +25,17 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MogoRouteOverlayManager implements IMogoCarLocationChangedListener2, IMoGoAutopilotPlanningListener, IMoGoAutopilotStatusListener {
|
||||
public class MogoRouteOverlayManager implements IMoGoAutopilotPlanningListener, IMoGoAutopilotStatusListener {
|
||||
private static volatile MogoRouteOverlayManager sInstance;
|
||||
private Context mContext;
|
||||
private String TAG = "MogoRouteOverlayManager";
|
||||
private String TAG2 = "MogoRouteOverlayManager routes";
|
||||
private int STATUS_AUTOPILOT = 0;//0 非自动驾驶 ; 1 自动驾驶
|
||||
private MogoRouteOverlayManager(Context context) {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
public void init() {
|
||||
MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getRegisterCenterApi()
|
||||
.registerCarLocationChangedListener(TAG, this);
|
||||
CallerAutopilotPlanningListenerManager.INSTANCE.addListener(TAG, this);
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, this);
|
||||
}
|
||||
@@ -54,34 +51,6 @@ public class MogoRouteOverlayManager implements IMogoCarLocationChangedListener2
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onCarLocationChanged2(Location latLng) {
|
||||
// updateLocation(latLng);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCarLocationChanged(MogoLatLng latLng) {
|
||||
|
||||
}
|
||||
|
||||
public void updateLocation(Location location) {
|
||||
if (location == null) {
|
||||
return;
|
||||
}
|
||||
//坐标转换
|
||||
MogoLocation loc = new MogoLocation();
|
||||
loc.setTime(loc.getTime());
|
||||
loc.setAccuracy(location.getAccuracy());
|
||||
loc.setSpeed(location.getSpeed());
|
||||
loc.setLongitude(location.getLongitude());
|
||||
loc.setLatitude(location.getLatitude());
|
||||
loc.setAltitude(location.getAltitude());
|
||||
loc.setBearing(location.getBearing());
|
||||
loc.setProvider(location.getProvider());
|
||||
RouteOverlayDrawer.getInstance(mContext).drawRouteOverlay(loc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotTrajectory(ArrayList<ADASTrajectoryInfo> trajectoryInfos) {
|
||||
if (trajectoryInfos == null || trajectoryInfos.size() == 0) {
|
||||
@@ -111,9 +80,7 @@ public class MogoRouteOverlayManager implements IMogoCarLocationChangedListener2
|
||||
for (AutopilotRouteInfo.RouteModels routeModel : routeList.getModels()) {
|
||||
latLngList.add(new MogoLatLng(routeModel.getLat(), routeModel.getLon()));
|
||||
}
|
||||
Log.e(TAG, "routeResult:" + latLngList.size());
|
||||
|
||||
RouteOverlayDrawer.getInstance(mContext).putRouteList(latLngList);
|
||||
Log.d(TAG2, "routeResult:" + latLngList.size());
|
||||
int listSize = latLngList.size();
|
||||
RouteOverlayDrawer.getInstance(mContext).addEndingMarker(latLngList.get(listSize - 1).lat,latLngList.get(listSize - 1).lon);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.mogo.module.service.routeoverlay;
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.util.Log;
|
||||
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.data.map.MogoLocation;
|
||||
@@ -69,71 +70,21 @@ public class RouteOverlayDrawer {
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
private List<MogoLatLng> mRouteList;
|
||||
|
||||
public void drawRouteOverlay(MogoLocation location){
|
||||
if (mRouteList == null ){
|
||||
clearMogoRouteOverlay();
|
||||
return;
|
||||
}
|
||||
if (mRouteList.size() >0){
|
||||
//adas回调导航路径 绘制引导线
|
||||
draw(location,mRouteList);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 绘制最优路线
|
||||
*
|
||||
* @param routelist 要绘制的经纬度度集合
|
||||
*/
|
||||
public IMogoPolyline draw(MogoLocation carLocal, List<MogoLatLng> routelist) {
|
||||
clearMogoRouteOverlay();
|
||||
if (routelist != null) {
|
||||
if (carLocal == null){
|
||||
for (MogoLatLng polyline : routelist) {
|
||||
// Log.e("IMogoPolyline",polyline.getLat()+":"+polyline.lon);
|
||||
//需要剔除已经行驶过的经纬度,这里需要比对推荐路线集合中的点是否在当前车辆行驶方向前面如果不在则抛弃
|
||||
mPolylinePointList.add(polyline);
|
||||
}
|
||||
}else {
|
||||
// 将当前车辆位置放进去
|
||||
// mPolylinePointList.add(new MogoLatLng(carLocal.getLatitude(), carLocal.getLongitude()));
|
||||
for (MogoLatLng polyline : routelist) {
|
||||
// Log.e("IMogoPolyline",polyline.getLat()+":"+polyline.lon);
|
||||
if (LocationUtils.isPointOnCarFront(carLocal, polyline)) {
|
||||
}
|
||||
mPolylinePointList.add(polyline);
|
||||
//需要剔除已经行驶过的经纬度,这里需要比对推荐路线集合中的点是否在当前车辆行驶方向前面如果不在则抛弃
|
||||
// Log.e("lianglihui",polyline.getLat()+":"+polyline.getLon());
|
||||
}
|
||||
}
|
||||
|
||||
// 过滤后台推送的推荐路线集合
|
||||
|
||||
mPolylineOptions.setGps(true);
|
||||
mPolylineColors.addAll(ColorUtils.getGradientAlpha("#002965ED", "#FF2965ED", "#002965ED", mPolylinePointList.size()));
|
||||
// 替换路径集合
|
||||
mPolylineOptions.points(mPolylinePointList);
|
||||
// 线条粗细,渐变,渐变色值
|
||||
mPolylineOptions.width(14).useGradient(true).colorValues(mPolylineColors);
|
||||
// 绘制线
|
||||
mMoGoPolyline = mogoOverlayManager.addPolyline(mPolylineOptions);
|
||||
}
|
||||
return mMoGoPolyline;
|
||||
}
|
||||
|
||||
public void addEndingMarker(double lat,double lon){
|
||||
if (markderOptions == null){
|
||||
markderOptions = new MogoMarkerOptions().
|
||||
set3DMode(MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode())
|
||||
.matchOnRoadSide(true)
|
||||
.gps(true)
|
||||
.icon(endingBitmap)
|
||||
.owner(markerType)
|
||||
.zIndex(20001);
|
||||
.anchor(0.5f, 0.5f)
|
||||
.zIndex(30001);
|
||||
// .object(markerShowEntity)
|
||||
}
|
||||
markderOptions.latitude(lat).longitude(lon);
|
||||
Log.d("lianglihui","addEndingMarker-"+lat+":"+lon);
|
||||
endMarker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext).addMarker(markerType, markderOptions);
|
||||
}
|
||||
|
||||
@@ -152,9 +103,6 @@ public class RouteOverlayDrawer {
|
||||
}
|
||||
}
|
||||
|
||||
public void putRouteList(List<MogoLatLng> routeList) {
|
||||
this.mRouteList = routeList;
|
||||
}
|
||||
|
||||
public void drawTrajectoryList(List<MogoLatLng> routeList) {
|
||||
// clearMogoRouteOverlay();
|
||||
@@ -163,9 +111,8 @@ public class RouteOverlayDrawer {
|
||||
for (MogoLatLng latLng : routeList) {
|
||||
mPolylinePointList.add(latLng);
|
||||
}
|
||||
if (mPolylineColors.isEmpty()){
|
||||
mPolylineColors.addAll(ColorUtils.getGradientAlpha("#002965ED", "#FF2965ED", "#2AAFFD", mPolylinePointList.size()));
|
||||
}
|
||||
mPolylineColors.clear();
|
||||
mPolylineColors.addAll(ColorUtils.getGradientAlpha("#002965ED", "#FF2965ED", "#2AAFFD", mPolylinePointList.size()));
|
||||
// 线条粗细,渐变,渐变色值
|
||||
mPolylineOptions.width(12).useGradient(true).colorValues(mPolylineColors);
|
||||
if (mMoGoPolyline == null || mMoGoPolyline.isDestroyed()){
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 115 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 100 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
Reference in New Issue
Block a user