From d0c86fd9882dbe51ed6687c8a8449d16176fd831 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期二, 14 一月 2020 17:57:16 +0800 Subject: [PATCH] Merge branch 'master' of https://gitee.com/endian11/DriveJudge --- app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java | 82 ++++++++++++++++++++++++++++++++++------- 1 files changed, 68 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java index 986f967..a4c77f5 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java @@ -1,5 +1,6 @@ package safeluck.drive.evaluation.fragment; +import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; @@ -14,14 +15,26 @@ import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; +import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.Toolbar; +import com.anyun.exam.lib.MyLog; +import com.google.gson.Gson; + + +import java.util.List; + import me.yokeyword.fragmentation.SupportFragment; +import safeluck.drive.evaluation.Constant; import safeluck.drive.evaluation.R; +import safeluck.drive.evaluation.bean.RealTimeCarPos; +import safeluck.drive.evaluation.cEventCenter.CEventCenter; +import safeluck.drive.evaluation.cEventCenter.ICEventListener; +import safeluck.drive.evaluation.util.CThreadPoolExecutor; /** @@ -30,18 +43,19 @@ * 閭锛�632393724@qq.com * All Rights Saved! Chongqing AnYun Tech co. LTD */ -public class MapFragment extends SupportFragment{ +public class MapFragment extends SupportFragment { private boolean isDrawing = false; - public static SupportFragment newInstance(){ + public static SupportFragment newInstance() { return new MapFragment(); } + private SurfaceView mSurfaceView; private static final String TAG = "MapFragment"; private SurfaceHolder holder; Path path = new Path(); private Canvas canvas; - private int x=-1; + private int x = -1; private int y = -1; private Toolbar toolbar; @@ -52,15 +66,18 @@ private String osd = null; private String osd2 = null; private String osd3 = null; - - + double map[][] = {{1, 1}, {10, 1}, {10, 10}, {1, 10}}; + double car[][] = {{8.278, 1.467}, {7.2780000000000009, 1.467}, {7.2780000000000009, -1.533}, {8.278, -1.533} + , {9.278, -1.5330000000000004}, {9.277999999999999, 1.467000000000001}}; + Gson gson; private LinearLayout linearLayout;//surfaceview鐨勭埗瀹瑰櫒锛屼负浜嗙Щ鍔╯urfaceview鑰屼娇鐢紝鍥犱负scrollto涓嶈兘绉诲姩view锛� @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.layout_mapfragment,container,false); + View view = inflater.inflate(R.layout.layout_mapfragment, container, false); + gson = new Gson(); initView(view); return view; } @@ -108,7 +125,7 @@ holder.unlockCanvasAndPost(canvas); } - new Thread(new NeedForSpeed()).start(); +// new Thread(new NeedForSpeed(car, map)).start(); } @Override @@ -125,16 +142,21 @@ class NeedForSpeed implements Runnable { + public NeedForSpeed(double[][] car, double[][] map) { + DrawMap(map, car); + } + @Override public void run() { - double map[][] = {{1,1}, {10,1}, {10,10}, {1,10}}; - double car[][] = {{3,3}, {8,3}, {8,8}, {3,8}}; + +// double car[][] = {{3,3}, {8,3}, {8,8}, {3,8}}; + DrawMap(map, car); } } - public void DrawMap(final double [][]map, final double [][]car) { + public void DrawMap(final double[][] map, final double[][] car) { if (canvas2 == null || bmp == null) { return; } @@ -205,10 +227,10 @@ Path path = new Path(); if (map.length != 9) { - Log.d(TAG, "DrawMap X = " + String.format("%f", (float) (base_x + (map[0][0] - min_x) * scale_x)) + " Y = " + String.format("%f", (float) (base_y + (map[0][1] - min_y) * scale_y))); + Log.d(TAG, "DrawMap X = " + String.format("%f", (float) (base_x + (map[0][0] - min_x) * scale_x)) + " Y = " + String.format("%f", (float) (base_y + (map[0][1] - min_y) * scale_y))); path.moveTo((float) (base_x + (map[0][0] - min_x) * scale_x), (float) (base_y + (map[0][1] - min_y) * scale_y)); for (int i = 1; i < map.length; i++) { - Log.d(TAG, "DrawMap to X = " + (float) (base_x + (map[i][0] - min_x) * scale_x) + " Y = "+ (float) (base_y + (map[i][1] - min_y) * scale_y)); + Log.d(TAG, "DrawMap to X = " + (float) (base_x + (map[i][0] - min_x) * scale_x) + " Y = " + (float) (base_y + (map[i][1] - min_y) * scale_y)); path.lineTo((float) (base_x + (map[i][0] - min_x) * scale_x), (float) (base_y + (map[i][1] - min_y) * scale_y)); } path.close(); @@ -230,9 +252,9 @@ } canvas2.drawPath(path, paint); - path.moveTo((float) (base_x + (car[0][0] - min_x) * scale_x), (float) (base_y + (car[0][1] - min_y)*scale_y)); + path.moveTo((float) (base_x + (car[0][0] - min_x) * scale_x), (float) (base_y + (car[0][1] - min_y) * scale_y)); for (int i = 1; i < car.length; i++) - path.lineTo((float) (base_x + (car[i][0] - min_x) * scale_x), (float) (base_y + (car[i][1] - min_y)*scale_y)); + path.lineTo((float) (base_x + (car[i][0] - min_x) * scale_x), (float) (base_y + (car[i][1] - min_y) * scale_y)); path.close(); canvas2.drawPath(path, paint); @@ -289,7 +311,39 @@ }); } + int line = 0; + private ICEventListener icEventListener = new ICEventListener() { + @Override + public void onCEvent(String topic, int msgCode, int resultCode, Object obj) { + MyLog.i(TAG, (String) obj); + RealTimeCarPos timeCarPos = gson.fromJson((String) obj, RealTimeCarPos.class); + List<Double> points = timeCarPos.getPoint(); + line = 0; + for (int i = 0; i < points.size(); i++) { + if ((i % 2) == 0) { + car[line][0] = points.get(i); + } else { + double value = 0 - points.get(i); + Log.i(TAG, "onCEvent: 鏂板��=" + value + " 浣嶇疆锛�" + i); + car[line][1] = value; + line++; + } + } + CThreadPoolExecutor.runInBackground(new NeedForSpeed(car,map)); + } + }; + @Override + public void onAttach(Context context) { + super.onAttach(context); + CEventCenter.onBindEvent(true, icEventListener, Constant.REAL_TIME_POS_CAR_TOPIC); + } + + @Override + public void onDetach() { + super.onDetach(); + CEventCenter.onBindEvent(false, icEventListener, Constant.REAL_TIME_POS_CAR_TOPIC); + } } -- Gitblit v1.8.0