识别物与碰撞点之间的引导箭头角度调整(未生效)

This commit is contained in:
liujing
2021-04-19 17:07:38 +08:00
parent 4cdb73b8f4
commit cefa9a2c78
2 changed files with 12 additions and 7 deletions

View File

@@ -125,12 +125,16 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL
return marker; return marker;
} }
public void drawerArrowsMarkerWithLocation(MogoLatLng location, String markerType, int type, int period) { public void drawerArrowsMarkerWithLocation(MogoLatLng location, String markerType, int type, int rotate) {
MogoMarkerOptions options = new MogoMarkerOptions() MogoMarkerOptions options = new MogoMarkerOptions()
.latitude(location.getLat()) .latitude(location.getLat())
.longitude(location.getLon()); .longitude(location.getLon())
options.icon3DRes(getModelRes(type)); //TODO .set3DMode(true)
options.anchorColor("#FB3C3CFF"); //红色#FF3036 蓝色:#256BFF .controlAngle(true)
.rotate(rotate);
options.icon3DRes(getModelRes(type));
options.flat(true);
options.anchorColor("#FB3C3CFF");
IMogoMarker marker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext).addMarker(markerType, options); IMogoMarker marker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext).addMarker(markerType, options);
marker.setToTop(); marker.setToTop();
} }

View File

@@ -160,7 +160,7 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog
MogoLatLng endLatlng = new MogoLatLng(mogoLatLng.lat, mogoLatLng.lon); MogoLatLng endLatlng = new MogoLatLng(mogoLatLng.lat, mogoLatLng.lon);
float distance = CoordinateUtils.calculateLineDistance(startLatLng.lon, startLatLng.lat, endLatlng.lon, endLatlng.lat); float distance = CoordinateUtils.calculateLineDistance(startLatLng.lon, startLatLng.lat, endLatlng.lon, endLatlng.lat);
MogoLatLng addMiddleLoc = Trigonometric.getNewLocation(startLatLng, distance / 2, mCloundWarningInfo.getAngle()); MogoLatLng addMiddleLoc = Trigonometric.getNewLocation(startLatLng, distance / 2, mCloundWarningInfo.getAngle());
Log.d(V2XConst.LOG_NAME_WARN, "红色区域起始点 = " + startLatLng.lon + "," + startLatLng.lat + Log.d(TAG, "红色区域起始点 = " + startLatLng.lon + "," + startLatLng.lat +
"中间点坐标:" + addMiddleLoc.lon + "," + addMiddleLoc.lat "中间点坐标:" + addMiddleLoc.lon + "," + addMiddleLoc.lat
+ "终点" + endLatlng.lon + "," + endLatlng.lat); + "终点" + endLatlng.lon + "," + endLatlng.lat);
if (polyLine != null) { if (polyLine != null) {
@@ -226,14 +226,15 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog
private void addArrows(MogoLatLng startLatLng, MogoLatLng endLatLng) { private void addArrows(MogoLatLng startLatLng, MogoLatLng endLatLng) {
float distance = CoordinateUtils.calculateLineDistance( float distance = CoordinateUtils.calculateLineDistance(
startLatLng.lon, startLatLng.lat, endLatLng.lon, endLatLng.lat); startLatLng.lon, startLatLng.lat, endLatLng.lon, endLatLng.lat);
double period = Trigonometric.getAngle(startLatLng.lon, startLatLng.lat, endLatLng.lon, endLatLng.lat); double rotate = Trigonometric.getAngle(startLatLng.lon, startLatLng.lat, endLatLng.lon, endLatLng.lat);
Log.d(TAG, "添加小箭头--目标物与预碰撞点之间的距离是" + String.valueOf(distance)); Log.d(TAG, "添加小箭头--目标物与预碰撞点之间的距离是" + String.valueOf(distance));
if (distance > 5) { if (distance > 5) {
int count = (int) (distance / 5); int count = (int) (distance / 5);
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
MogoLatLng newLo = Trigonometric.getNewLocation( MogoLatLng newLo = Trigonometric.getNewLocation(
startLatLng, 5 * (i + 1), Trigonometric.getAngle(startLatLng.lon,startLatLng.lat,endLatLng.lon,endLatLng.lat)); startLatLng, 5 * (i + 1), Trigonometric.getAngle(startLatLng.lon,startLatLng.lat,endLatLng.lon,endLatLng.lat));
V2XWarnDataDrawer.getInstance().drawerArrowsMarkerWithLocation(newLo, WARNING_ARROWS, 10, Integer.parseInt(String.valueOf(period))); Log.d(TAG, "小箭头位置" + newLo);
V2XWarnDataDrawer.getInstance().drawerArrowsMarkerWithLocation(newLo, WARNING_ARROWS, 10, new Double(rotate).intValue());
} }
} }
//延迟3秒清理线 //延迟3秒清理线