车前引导线 绘制终点marker
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 |
Reference in New Issue
Block a user