From 8a9fc88104727c821832dfdaec4f66901c66bdb8 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期四, 18 六月 2020 17:48:14 +0800
Subject: [PATCH] 车辆动态绘制,根据坐标点和角度

---
 app/src/main/java/safeluck/drive/evaluation/app.java                      |    1 
 app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java    |   36 ++++++++++-------
 app/src/main/java/safeluck/drive/evaluation/fragment/JiaXiaoFragment.java |   36 +++++++++++++++---
 app/src/main/java/safeluck/drive/evaluation/util/Utils.java               |    6 ++-
 4 files changed, 56 insertions(+), 23 deletions(-)

diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index e04c9b2..3c2f9aa 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -270,6 +270,7 @@
                                         @Override
                                         public void run() {
                                             Toast.makeText(appContext, "缂哄皯鍦鸿�冨湴鍥撅紝璇峰墠寰�\"璁剧疆\"閫夋嫨鍦板浘", Toast.LENGTH_SHORT).show();
+
                                         }
                                     });
 
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
index 7a2a4d5..659e551 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
@@ -109,22 +109,28 @@
                 break;
             case R.id.exit_sys:
 
-                MyDialog myDialog = MyDialog.Companion.newInstance("鎮ㄥ皢閫�鍑虹郴缁�,璇风‘璁ゆ暟鎹凡淇濆瓨");
+//                MyDialog myDialog = MyDialog.Companion.newInstance("鎮ㄥ皢閫�鍑虹郴缁�,璇风‘璁ゆ暟鎹凡淇濆瓨");
+//
+//                myDialog.setOnClick(new MyDialog.MyOnClickListener() {
+//                    @Override
+//                    public void onSure() {
+//                        _mActivity.finish();
+//
+//                    }
+//
+//                    @Override
+//                    public void onCancle() {
+//
+//                    }
+//                });
+//
+//                myDialog.show(getFragmentManager(),"mydialog");
 
-                myDialog.setOnClick(new MyDialog.MyOnClickListener() {
-                    @Override
-                    public void onSure() {
-                        _mActivity.finish();
-
-                    }
-
-                    @Override
-                    public void onCancle() {
-
-                    }
-                });
-
-                myDialog.show(getFragmentManager(),"mydialog");
+                JiaXiaoFragment jiaXiaoFragment = findFragment(JiaXiaoFragment.class);
+                if (jiaXiaoFragment == null) {
+                    jiaXiaoFragment = (JiaXiaoFragment) JiaXiaoFragment.newInstance();
+                }
+                start(jiaXiaoFragment);
 
                 break;
             case R.id.system_setting:
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/JiaXiaoFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/JiaXiaoFragment.java
index 36866fd..454809f 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/JiaXiaoFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/JiaXiaoFragment.java
@@ -3,6 +3,8 @@
 import android.graphics.Color;
 import android.os.Bundle;
 
+import android.os.Handler;
+import android.os.Message;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
@@ -53,6 +55,9 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
 
 import me.yokeyword.fragmentation.SupportFragment;
 import safeluck.drive.evaluation.R;
@@ -75,12 +80,27 @@
     private static final String TAG = JiaXiaoFragment.class.getSimpleName();
 
     private MapView mMapView ;
+    private static final int MSG_CAR = 100;
+    double yaw = 0;
 
     GraphicsOverlay mGraphicsOverlay;
+    private int count =0;
+    private double startX = -8647.003,startY = 14590.7213;
+    private Handler mHandler = new Handler(){
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what){
+                case MSG_CAR:
+                    count++;
+                    yaw +=count;
+                    addGraphicLayer(yaw,startX+count,startY+count);
+                    sendEmptyMessageDelayed(MSG_CAR,1000);
+                    break;
+            }
+        }
+    };
 
     PointCollection mPointCollection = new PointCollection(SpatialReference.create(4544));
-
-
     @Nullable
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@@ -91,7 +111,9 @@
         setupMap();
         addTrailheadsLayer();
 //        addImageLayer();
-        addGraphicLayer();
+
+        mHandler.sendEmptyMessageDelayed(MSG_CAR,1000);
+
 //        drawPolygon();
         return view;
     }
@@ -128,11 +150,13 @@
             }
         });
 
+ 
+
 
 
     }
 
-    private void addGraphicLayer(){
+    private void addGraphicLayer(double yaw,double x,double y){
 
         SimpleLineSymbol lineSymbol = new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, Color.rgb(232,0,0), 0.5f);
         SimpleFillSymbol simpleFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.Style.SOLID, Color.argb(255,232,0,0), lineSymbol);
@@ -144,7 +168,7 @@
                 Log.i(TAG,"giscar="+buffer.toString());
                 GisCarModel gisCarModel= new Gson().fromJson(buffer.toString(),GisCarModel.class);
 //                List<safeluck.drive.evaluation.bean.Point> carNew=Utils.getCarPoint(0,45,new safeluck.drive.evaluation.bean.Point(-8633.77199999988,14471.793700000271));
-                List<safeluck.drive.evaluation.bean.Point> carNew=Utils.getCarPoint(0,45,new safeluck.drive.evaluation.bean.Point(-8647.003,14590.7213));
+                List<safeluck.drive.evaluation.bean.Point> carNew=Utils.getCarPoint(0,yaw,new safeluck.drive.evaluation.bean.Point(x,y));
                 List<Integer> bodys =gisCarModel.getBody();
                 for (int i = 0; i <bodys.size(); i++) {
                     Log.i(TAG,String.format("杞﹁韩鐐逛綅缃細%d",bodys.get(i)));
@@ -163,7 +187,7 @@
 
                         drawrightCenterGls(gisCarModel,carNew);
 
-                        drawPoint(new Point(-8647.003,14590.7213));
+                        drawPoint(new Point(x,y));
 
                     }
                 });
diff --git a/app/src/main/java/safeluck/drive/evaluation/util/Utils.java b/app/src/main/java/safeluck/drive/evaluation/util/Utils.java
index 81a5347..2c1ab57 100644
--- a/app/src/main/java/safeluck/drive/evaluation/util/Utils.java
+++ b/app/src/main/java/safeluck/drive/evaluation/util/Utils.java
@@ -692,7 +692,7 @@
 
     public static List<Point> getCarPoint(double pitch,double yaw,Point point){
         pitch = 0;
-        yaw = 45;
+//        yaw = 45;
         Point main_ant = point;
         List<Point> carNew = new ArrayList<>();
         StringBuffer buffer=FileUtil.readAssetTxtFile(app.getAppContext(),"giscar.json");
@@ -708,7 +708,9 @@
 
 
         }
-        List<CarModel> carModels = getCarModelData(new Point(-9151.5063, 13030.5118),gisCarModel.getAxial(),pointList);
+        double mainAnt_x = gisCarModel.getMain_ant().get(0);
+        double mainAnt_y = gisCarModel.getMain_ant().get(1);
+        List<CarModel> carModels = getCarModelData(new Point(mainAnt_x, mainAnt_y),gisCarModel.getAxial(),pointList);
         if (carModels != null && carModels.size()>0){
 
             for (int i = 0; i < carModels.size(); ++i) {

--
Gitblit v1.8.0