车前引导线 绘制终点marker

This commit is contained in:
lianglihui
2021-12-10 11:01:06 +08:00
parent 90ebcf7cab
commit 14dbf23be9
3 changed files with 38 additions and 5 deletions

View File

@@ -114,6 +114,8 @@ public class MogoRouteOverlayManager implements IMogoCarLocationChangedListener2
Log.e(TAG, "routeResult:" + latLngList.size());
RouteOverlayDrawer.getInstance(mContext).putRouteList(latLngList);
int listSize = latLngList.size();
RouteOverlayDrawer.getInstance(mContext).addEndingMarker(latLngList.get(listSize - 1).lat,latLngList.get(listSize - 1).lon);
}
@Override
@@ -121,6 +123,7 @@ public class MogoRouteOverlayManager implements IMogoCarLocationChangedListener2
this.STATUS_AUTOPILOT = autoPilotStatusInfo.getControl_pilotmode();
if (STATUS_AUTOPILOT != 1) {
RouteOverlayDrawer.getInstance(mContext).clearMogoRouteOverlay();
RouteOverlayDrawer.getInstance(mContext).clearEndingMarker();
}
}

View File

@@ -1,14 +1,19 @@
package com.mogo.module.service.routeoverlay;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import com.mogo.eagle.core.data.map.MogoLatLng;
import com.mogo.eagle.core.data.map.MogoLocation;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.map.overlay.IMogoOverlayManager;
import com.mogo.map.overlay.IMogoPolyline;
import com.mogo.map.overlay.MogoPolylineOptions;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.utils.LocationUtils;
import com.mogo.module.service.R;
import com.mogo.utils.ColorUtils;
import java.util.ArrayList;
@@ -25,19 +30,24 @@ public class RouteOverlayDrawer {
private List<Integer> mPolylineColors;
private Context mContext;
IMogoOverlayManager mogoOverlayManager;
private IMogoMarker endMarker;
private MogoMarkerOptions markderOptions;
private Bitmap endingBitmap;
private static volatile RouteOverlayDrawer sInstance;
private static final String markerType = "route_ending";
private RouteOverlayDrawer(Context context) {
mPolylineOptions = new MogoPolylineOptions();
mPolylineOptions.zIndex(20000f);
mPolylineOptions.setGps(true);
// 绘制路径集合
mPolylinePointList = new ArrayList<>();
// 引导线颜色
// 引导线颜色,
mPolylineColors = new ArrayList<>();
mContext = context;
mogoOverlayManager = MogoApisHandler.getInstance().getApis().getMapServiceApi().getOverlayManager(mContext);
endingBitmap = BitmapFactory.decodeResource(context.getResources(),
R.drawable.icon_route_ending);
}
public static RouteOverlayDrawer getInstance(Context context) {
@@ -113,6 +123,20 @@ public class RouteOverlayDrawer {
return mMoGoPolyline;
}
public void addEndingMarker(double lat,double lon){
if (markderOptions == null){
markderOptions = new MogoMarkerOptions().
set3DMode(MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode())
.matchOnRoadSide(true)
.icon(endingBitmap)
.owner(markerType)
.zIndex(20001);
// .object(markerShowEntity)
}
markderOptions.latitude(lat).longitude(lon);
endMarker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext).addMarker(markerType, markderOptions);
}
public void clearMogoRouteOverlay(){
if (mMoGoPolyline != null) {
mMoGoPolyline.remove();
@@ -122,6 +146,12 @@ public class RouteOverlayDrawer {
}
}
public void clearEndingMarker(){
if (endMarker != null){
endMarker.setVisible(false);
}
}
public void putRouteList(List<MogoLatLng> routeList) {
this.mRouteList = routeList;
}
@@ -134,10 +164,10 @@ public class RouteOverlayDrawer {
mPolylinePointList.add(latLng);
}
if (mPolylineColors.isEmpty()){
mPolylineColors.addAll(ColorUtils.getGradientAlpha("#002965ED", "#FF2965ED", "#002965ED", mPolylinePointList.size()));
mPolylineColors.addAll(ColorUtils.getGradientAlpha("#002965ED", "#FF2965ED", "#2AAFFD", mPolylinePointList.size()));
}
// 线条粗细,渐变,渐变色值
mPolylineOptions.width(14).useGradient(true).colorValues(mPolylineColors);
mPolylineOptions.width(12).useGradient(true).colorValues(mPolylineColors);
if (mMoGoPolyline == null || mMoGoPolyline.isDestroyed()){
mPolylineOptions.points(mPolylinePointList);
mMoGoPolyline = mogoOverlayManager.addPolyline(mPolylineOptions);

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB