From 8db5d3eafb1cc5352b1bdf2c281c54c7fa80db93 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 14 二月 2025 18:07:04 +0800
Subject: [PATCH] 补充

---
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java    |   20 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_edit.html                       |  308 +++++++++---------
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_trajectory.html                 |  167 ++++++++++
 ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tOrderTaxi/tOrderTaxi_info.js                       |  313 ++++++++++---------
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java |   78 ++++
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOnlineServiceImpl.java |   23 +
 6 files changed, 585 insertions(+), 324 deletions(-)

diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java
index 0237b21..081aeec 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java
@@ -145,13 +145,21 @@
             ne1.eq("companyId", companyId).or().eq("franchiseeId", companyId);
         }
         List<TDriver> tDrivers = tDriverService.selectList(ne1);
-        String keys = "";
-        for(TDriver driver : tDrivers){
-            keys += "DRIVER" + driver.getId() + ",";
+//        String keys = "";
+//        for(TDriver driver : tDrivers){
+//            keys += "DRIVER" + driver.getId() + ",";
+//        }
+//        String value = redisUtil.getValues(keys.substring(0, keys.length() - 1));
+        int size = 0;
+        for(TDriver tDriver : tDrivers){
+            Map<String, Object> d = new HashMap<>();
+            String value1 = redisUtil.getValue("DRIVER" + tDriver.getId());
+            if(ToolUtil.isEmpty(value1)){
+                continue;
+            }
+            size++;
         }
-        String value = redisUtil.getValues(keys.substring(0, keys.length() - 1));
-        JSONArray jsonArray = JSON.parseArray(value);
-        int size = driverOnlineService.queryOnlineDriverCount(null, null);
+//        int size = driverOnlineService.queryOnlineDriverCount(null, null);
         map1.put("netcardriver", size);  //在线司机
         Wrapper<TOrderTaxi> travelTime1 = new EntityWrapper<TOrderTaxi>().between("travelTime", calendar1.getTime(), calendar2.getTime());
         if(companyId != null){
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java
index 8a618a8..1256982 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
+import com.google.gson.Gson;
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.common.constant.factory.PageFactory;
 import com.stylefeng.guns.core.shiro.ShiroKit;
@@ -20,10 +21,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import com.stylefeng.guns.core.log.LogObjectHolder;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
+import java.io.*;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -103,7 +101,7 @@
      * 跳转到修改出租车订单
      */
     @RequestMapping("/tOrderTaxi_update/{tOrderTaxiId}")
-    public String tOrderTaxiUpdate(@PathVariable Integer tOrderTaxiId, Model model) {
+    public String tOrderTaxiUpdate(@PathVariable Integer tOrderTaxiId, Model model) throws IOException {
         Map<String, Object> tOrderTaxi = tOrderTaxiService.getTaxiOrderDetailById(tOrderTaxiId);
         model.addAttribute("item",tOrderTaxi);
         // 查询司机扣款
@@ -129,12 +127,46 @@
                 model.addAttribute("driverMoney","");
             }
         }
-        if(tOrderTaxi.get("payManner").equals("1")){
+        if(tOrderTaxi.get("payManner")!=null && tOrderTaxi.get("payManner").equals("1")){
             model.addAttribute("payMannerStr","线上收款");
         }else {
             model.addAttribute("payMannerStr","计费打表");
         }
         LogObjectHolder.me().set(tOrderTaxi);
+        try{
+            //将数据存储到文件中
+            File file = new File(filePath + tOrderTaxiId + "_2.txt");
+
+            //读取文件(字符流)
+            BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
+            //循环取出数据
+            String str = null;
+            StringBuffer sb = new StringBuffer();
+            while ((str = in.readLine()) != null) {
+                sb.append(str);
+            }
+            List<TOrderPosition> list = JSONArray.parseArray(sb.toString(), TOrderPosition.class);
+            List<Map> maps = new ArrayList<>();
+            for (TOrderPosition tOrderPosition : list) {
+                Map<String, String> map = new HashMap<>();
+                map.put("lon",tOrderPosition.getLon());
+                map.put("lat",tOrderPosition.getLat());
+                maps.add(map);
+            }
+//        resultUtil = ResultUtil.success(list);
+            // 将maps转化为jsonArray字符串
+            // 使用 Gson 转换为 JSON 字符串
+//        Gson gson = new Gson();
+//        String jsonString = gson.toJson(maps);
+//        System.out.println(jsonString);
+            model.addAttribute("guiji",maps);
+        }catch (Exception e){
+            e.printStackTrace();
+            resultUtil = ResultUtil.runErr();
+            model.addAttribute("guiji","");
+        }
+
+
         return PREFIX + "tOrderTaxi_edit.html";
     }
 
@@ -153,8 +185,40 @@
      * 跳转到出租车订单轨迹页面
      */
     @RequestMapping("/tOrderTaxi_trajectory/{tOrderTaxiId}")
-    public String tOrderTaxi_trajectory(@PathVariable Integer tOrderTaxiId, Model model) {
+    public String tOrderTaxi_trajectory(@PathVariable Integer tOrderTaxiId, Model model) throws IOException {
         model.addAttribute("tOrderTaxiId",tOrderTaxiId);
+        try{
+            //将数据存储到文件中
+            File file = new File(filePath + tOrderTaxiId + "_2.txt");
+
+            //读取文件(字符流)
+            BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
+            //循环取出数据
+            String str = null;
+            StringBuffer sb = new StringBuffer();
+            while ((str = in.readLine()) != null) {
+                sb.append(str);
+            }
+            List<TOrderPosition> list = JSONArray.parseArray(sb.toString(), TOrderPosition.class);
+            List<Map> maps = new ArrayList<>();
+            for (TOrderPosition tOrderPosition : list) {
+                Map<String, String> map = new HashMap<>();
+                map.put("lon",tOrderPosition.getLon());
+                map.put("lat",tOrderPosition.getLat());
+                maps.add(map);
+            }
+//        resultUtil = ResultUtil.success(list);
+            // 将maps转化为jsonArray字符串
+            // 使用 Gson 转换为 JSON 字符串
+//        Gson gson = new Gson();
+//        String jsonString = gson.toJson(maps);
+//        System.out.println(jsonString);
+            model.addAttribute("guiji",maps);
+        }catch (Exception e){
+            e.printStackTrace();
+            resultUtil = ResultUtil.runErr();
+            model.addAttribute("guiji","");
+        }
         return PREFIX + "tOrderTaxi_trajectory.html";
     }
 
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOnlineServiceImpl.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOnlineServiceImpl.java
index 57336d2..a13c68c 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOnlineServiceImpl.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOnlineServiceImpl.java
@@ -1,12 +1,16 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.system.dao.DriverOnlineMapper;
 import com.stylefeng.guns.modular.system.model.DriverOnline;
 import com.stylefeng.guns.modular.system.service.IDriverOnlineService;
+import com.stylefeng.guns.modular.system.util.RedisUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -20,7 +24,8 @@
 
 
 
-
+    @Autowired
+    private RedisUtil redisUtil;
     /**
      * 获取列表数据
      * @param name
@@ -34,8 +39,20 @@
     public Map<String, Object> queryOnlineDriver(String name, String phone, Integer offset, Integer limit) throws Exception {
         Map<String, Object> map = new HashMap<>();
         List<Map<String, Object>> list = driverOnlineMapper.queryOnlineDriver(name, phone, offset, limit);
-        int i = driverOnlineMapper.queryOnlineDriverCount(name, phone);
-        map.put("rows", list);
+        int i = 0 ;
+        List<Map<String, Object>> res = new ArrayList<>();
+
+        for (Map<String, Object> stringObjectMap : list) {
+            String value1 = redisUtil.getValue("DRIVER" + stringObjectMap.get("id"));
+            if(ToolUtil.isEmpty(value1)){
+                continue;
+            }
+            System.err.println("添加-"+value1);
+            res.add(stringObjectMap);
+            i++;
+        }
+//        int i = driverOnlineMapper.queryOnlineDriverCount(name, phone);
+        map.put("rows", res);
         map.put("total", i);
         return map;
     }
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_edit.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_edit.html
index c2ae01e..f3c8048 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_edit.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_edit.html
@@ -50,6 +50,7 @@
     <div class="ibox-content">
         <div class="form-horizontal">
             <input type="hidden" id="id" name="id" value="${item.id}">
+            <input type="hidden" id="guiji" name="guiji" value="${guiji}">
             <div class="row" style="margin-top: 30px;">
                 <div class="col-sm-4">
                     <h2 class="h3Class" style="font-weight: 700;">订单详情</h2>
@@ -133,176 +134,171 @@
 <script src="${ctxPath}/static/js/track3.js"></script>
 <script type="text/javascript" src="//mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/track.js"></script>
 <script src="${ctxPath}/static/modular/system/tOrderTaxi/tOrderTaxi_info.js"></script>
-<!--<script>-->
-<!--    getTrajectory();-->
-<!--    function getTrajectory() {-->
-<!--        $.ajax({-->
-<!--            url: Feng.ctxPath + '/tOrderTaxi/getOrderTrack',-->
-<!--            type: 'POST',-->
-<!--            data:{-->
-<!--                orderDetailId: $("#id").val()-->
-<!--            },-->
-<!--            success: function (res) {-->
-<!--                if(res.status == 200){-->
-<!--                    var data = res.data;-->
-<!--                    if(data.length > 0){-->
-<!--                        orderTrack(data);-->
-<!--                    }/*else{-->
-<!--                    Feng.error("当前订单没有轨迹");-->
-<!--                }*/-->
-<!--                }else{-->
-<!--                    Feng.error(res.msg);-->
-<!--                }-->
-<!--            }-->
-<!--        });-->
-<!--    }-->
-<!--    var map = new BMapGL.Map('allmap', {-->
-<!--        style: 'grayed-out',-->
-<!--        displayOptions: {-->
-<!--            indoor: false,-->
-<!--            poiText: false,-->
-<!--            poiIcon: false,-->
-<!--            building: false,-->
-<!--        }-->
-<!--    });-->
-<!--    var point = new BMapGL.Point(demo_data[0][0], demo_data[0][1]);-->
+<script>
+    var temp = "${guiji}"
+    //
+    console.log("看看数据")
+    console.log(temp)
+    // 使用正则表达式替换等号为冒号,并添加双引号
+    const jsonString = temp
+        .replace(/\b(\w+)\b(?==)/g, '"$1"') // 将键名用双引号括起来
+        .replace(/=/g, ':') // 将等号替换为冒号
+        .replace(/'/g, '"'); // 确保所有引号都是双引号
+    console.log(jsonString)
+    // 将字符串解析为JSON数组
+    const jsonArray = JSON.parse(jsonString);
+    temp = jsonArray;
 
-<!--    map.centerAndZoom(point, 18);-->
-<!--    map.enableScrollWheelZoom(true);-->
-<!--    map.setTilt(35);-->
+    console.log(jsonArray);
+    console.log(temp)
+    console.log(temp[0])
+    console.log(temp[0].lon)
+    var map = new BMapGL.Map('allmap', {
+        style: 'grayed-out',
+        displayOptions: {
+            indoor: false,
+            poiText: false,
+            poiIcon: false,
+            building: false,
+        }
+    });
+    var point = new BMapGL.Point(temp[0].lon, temp[0].lat);
 
-<!--    var track = new Track.View(map, {-->
-<!--        lineLayerOptions: {-->
-<!--            style: {-->
-<!--                strokeWeight: 8,-->
-<!--                strokeLineJoin: 'round',-->
-<!--                strokeLineCap: 'round'-->
-<!--            },-->
-<!--        }-->
-<!--    });-->
+    map.centerAndZoom(point, 18);
+    map.enableScrollWheelZoom(true);
+    map.setTilt(35);
 
-<!--    var trackData = [];-->
-<!--    var colorOffset = [];-->
-<!--    for (var item of demo_data) {-->
-<!--        var point = new BMapGL.Point(item[0], item[1]);-->
-<!--        var trackPoint = new Track.TrackPoint(point);-->
-<!--        trackData.push(trackPoint);-->
-<!--        // 不同速度区间对应颜色-->
-<!--        var choose = [0.9, 0.5, 0.1];-->
-<!--        var color = choose[Math.floor(Math.random() * choose.length)];-->
-<!--        colorOffset.push(color);-->
-<!--    }-->
-<!--    var startMarker = new BMapGL.Marker(trackData[0].getPoint(), {-->
-<!--        icon: new BMapGL.Icon('https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/start.png', new BMapGL.Size(25, 40)),-->
-<!--        offset: new BMapGL.Size(0, -16),-->
-<!--    });-->
-<!--    map.addOverlay(startMarker);-->
-<!--    var endMarker = new BMapGL.Marker(trackData[trackData.length-1].getPoint(), {-->
-<!--        icon: new BMapGL.Icon('https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/end.png', new BMapGL.Size(25, 40)),-->
-<!--        offset: new BMapGL.Size(0, -16),-->
+    var track = new Track.View(map, {
+        lineLayerOptions: {
+            style: {
+                strokeWeight: 8,
+                strokeLineJoin: 'round',
+                strokeLineCap: 'round'
+            },
+        }
+    });
 
-<!--    });-->
-<!--    map.addOverlay(endMarker);-->
-<!--    var duration = 60000;-->
-<!--    var step = duration / trackData.length;-->
+    var trackData = [];
+    var colorOffset = [];
+    for (var item of temp) {
+        var point = new BMapGL.Point(item.lon, item.lat);
+        var trackPoint = new Track.TrackPoint(point);
+        trackData.push(trackPoint);
+        // 不同速度区间对应颜色
+        var choose = [0.9, 0.5, 0.1];
+        var color = choose[Math.floor(Math.random() * choose.length)];
+        colorOffset.push(color);
+    }
+    var startMarker = new BMapGL.Marker(trackData[0].getPoint(), {
+        icon: new BMapGL.Icon('https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/start.png', new BMapGL.Size(25, 40)),
+        offset: new BMapGL.Size(0, -16),
+    });
+    map.addOverlay(startMarker);
+    var endMarker = new BMapGL.Marker(trackData[trackData.length-1].getPoint(), {
+        icon: new BMapGL.Icon('https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/end.png', new BMapGL.Size(25, 40)),
+        offset: new BMapGL.Size(0, -16),
 
-<!--    var trackRoad = new Track.LiveTrack({-->
-<!--        // visible: false,-->
-<!--        duration: step,-->
-<!--        linearTexture: [[0, '#f45e0c'], [0.5, '#f6cd0e'], [1, '#2ad61d']],-->
-<!--        guideStyle: {-->
-<!--            style:{-->
-<!--                traceDisappear: false,-->
-<!--                traceStart: true,-->
-<!--                sequence: true,-->
-<!--                marginLength: 32,-->
-<!--                arrowColor: '#fff',-->
-<!--                strokeColor: 'rgba(27, 142, 236, 1)',-->
-<!--                strokeTextureUrl: 'https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/down.png',-->
-<!--                strokeTextureWidth: 64,-->
-<!--                strokeTextureHeight: 32,-->
-<!--            }-->
-<!--        },-->
-<!--    });-->
+    });
+    map.addOverlay(endMarker);
+    var duration = 60000;
+    var step = duration / trackData.length;
 
-<!--    trackRoad.setGuidTrackPath(trackData);-->
-<!--    trackRoad.on(Track.LineCodes.GUIDE_STATUS, (e) => {-->
-<!--        if (e.status === Track.GuidCodes.ADD_TO_MAP) {-->
-<!--            var guidTrack = trackRoad.getGuidTrack();-->
-<!--            guidTrack.on(Track.LineCodes.STATUS, (status) => {-->
-<!--                switch (status) {-->
-<!--                    case Track.StatusCodes.FINISH:-->
-<!--                        var box = trackRoad.getBBox();-->
-<!--                        if(box){-->
-<!--                            var bounds = [new BMapGL.Point(box[0], box[1]), new BMapGL.Point(box[2], box[3])];-->
-<!--                            map.setViewport(bounds);-->
-<!--                        }-->
-<!--                        break;-->
-<!--                    default:-->
-<!--                        break;-->
-<!--                }-->
-<!--            });-->
-<!--        }-->
-<!--    });-->
-<!--    var movePoint = new Track.ModelPoint({ point: trackData[0].getPoint(), style:{-->
-<!--            url: 'https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/bus.glb',-->
-<!--            scale: 9,-->
-<!--            level: 18,-->
-<!--            rotationX: 90,-->
-<!--            rotationY: 90,-->
-<!--            rotationZ: 0-->
-<!--        } });-->
-<!--    movePoint.setRotation(trackRoad.getGuidTrack().getStepInfoByIndex(0).angle);-->
+    var trackRoad = new Track.LiveTrack({
+        // visible: false,
+        duration: step,
+        linearTexture: [[0, '#f45e0c'], [0.5, '#f6cd0e'], [1, '#2ad61d']],
+        guideStyle: {
+            style:{
+                traceDisappear: false,
+                traceStart: true,
+                sequence: true,
+                marginLength: 32,
+                arrowColor: '#fff',
+                strokeColor: 'rgba(27, 142, 236, 1)',
+                strokeTextureUrl: 'https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/down.png',
+                strokeTextureWidth: 64,
+                strokeTextureHeight: 32,
+            }
+        },
+    });
 
-<!--    trackRoad.setMovePoint(movePoint);-->
+    trackRoad.setGuidTrackPath(trackData);
+    trackRoad.on(Track.LineCodes.GUIDE_STATUS, (e) => {
+        if (e.status === Track.GuidCodes.ADD_TO_MAP) {
+            var guidTrack = trackRoad.getGuidTrack();
+            guidTrack.on(Track.LineCodes.STATUS, (status) => {
+                switch (status) {
+                    case Track.StatusCodes.FINISH:
+                        var box = trackRoad.getBBox();
+                        if(box){
+                            var bounds = [new BMapGL.Point(box[0], box[1]), new BMapGL.Point(box[2], box[3])];
+                            map.setViewport(bounds);
+                        }
+                        break;
+                    default:
+                        break;
+                }
+            });
+        }
+    });
+    var movePoint = new Track.ModelPoint({ point: trackData[0].getPoint(), style:{
+            url: 'https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/bus.glb',
+            scale: 9,
+            level: 18,
+            rotationX: 90,
+            rotationY: 90,
+            rotationZ: 0
+        } });
+    movePoint.setRotation(trackRoad.getGuidTrack().getStepInfoByIndex(0).angle);
 
-<!--    track.addTrackLine(trackRoad);-->
-<!--    track.focusTrack(trackRoad);-->
+    trackRoad.setMovePoint(movePoint);
 
-<!--    var ani;-->
-<!--    var start = null;-->
-<!--    var index = 0;-->
-<!--    var finishIndex = 0;-->
+    track.addTrackLine(trackRoad);
+    track.focusTrack(trackRoad);
+
+    var ani;
+    var start = null;
+    var index = 0;
+    var finishIndex = 0;
 
 
-<!--    function startAnimation(timestamp) {-->
-<!--        if (!start) start = timestamp;-->
-<!--        var progress = timestamp - start;-->
-<!--        var next = step * (index - finishIndex);-->
+    function startAnimation(timestamp) {
+        if (!start) start = timestamp;
+        var progress = timestamp - start;
+        var next = step * (index - finishIndex);
 
-<!--        if(progress > next){-->
-<!--            if(index<trackData.length){-->
-<!--                movePoint.moveTo(trackData[index]);-->
-<!--                var obj = trackRoad.getGuidTrack().getStepInfoByIndex(index);-->
-<!--                trackRoad.setGradientColors(colorOffset.slice(0,index+1));-->
-<!--                index++;-->
-<!--            }else{-->
-<!--                pauseAnimation();-->
-<!--            }-->
+        if(progress > next){
+            if(index<trackData.length){
+                movePoint.moveTo(trackData[index]);
+                var obj = trackRoad.getGuidTrack().getStepInfoByIndex(index);
+                trackRoad.setGradientColors(colorOffset.slice(0,index+1));
+                index++;
+            }else{
+                pauseAnimation();
+            }
 
-<!--        }-->
-<!--        ani = requestAnimationFrame(startAnimation);-->
-<!--    }-->
+        }
+        ani = requestAnimationFrame(startAnimation);
+    }
 
 
-<!--    function stopAnimation() {-->
-<!--        pauseAnimation();-->
-<!--        index = 0;-->
-<!--        finishIndex = index;-->
+    function stopAnimation() {
+        pauseAnimation();
+        index = 0;
+        finishIndex = index;
 
-<!--        start = null;-->
-<!--        trackRoad.clearTrackPoint();-->
-<!--        movePoint.setPoint(trackData[0].getPoint());-->
-<!--        movePoint.setRotation(trackRoad.getGuidTrack().getStepInfoByIndex(0).angle);-->
-<!--    }-->
-<!--    function pauseAnimation() {-->
-<!--        cancelAnimationFrame(ani);-->
-<!--        finishIndex = index;-->
-<!--        start = null;-->
-<!--    }-->
-<!--    function resumeAnimation() {-->
-<!--        startAnimation();-->
-<!--    }-->
-
-<!--</script>-->
+        start = null;
+        trackRoad.clearTrackPoint();
+        movePoint.setPoint(trackData[0].getPoint());
+        movePoint.setRotation(trackRoad.getGuidTrack().getStepInfoByIndex(0).angle);
+    }
+    function pauseAnimation() {
+        cancelAnimationFrame(ani);
+        finishIndex = index;
+        start = null;
+    }
+    function resumeAnimation() {
+        startAnimation();
+    }
+</script>
 @}
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_trajectory.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_trajectory.html
index 294f5bb..4005938 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_trajectory.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_trajectory.html
@@ -49,4 +49,171 @@
 <script src="${ctxPath}/static/js/track3.js"></script>
 <script type="text/javascript" src="//mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/track.js"></script>
 <script src="${ctxPath}/static/modular/system/tOrderTaxi/tOrderTaxi_info.js"></script>
+<script>
+    var temp = "${guiji}"
+    //
+    console.log("看看数据")
+    console.log(temp)
+    // 使用正则表达式替换等号为冒号,并添加双引号
+    const jsonString = temp
+        .replace(/\b(\w+)\b(?==)/g, '"$1"') // 将键名用双引号括起来
+        .replace(/=/g, ':') // 将等号替换为冒号
+        .replace(/'/g, '"'); // 确保所有引号都是双引号
+    console.log(jsonString)
+    // 将字符串解析为JSON数组
+    const jsonArray = JSON.parse(jsonString);
+    temp = jsonArray;
+
+    console.log(jsonArray);
+    console.log(temp)
+    console.log(temp[0])
+    console.log(temp[0].lon)
+    var map = new BMapGL.Map('allmap', {
+        style: 'grayed-out',
+        displayOptions: {
+            indoor: false,
+            poiText: false,
+            poiIcon: false,
+            building: false,
+        }
+    });
+    var point = new BMapGL.Point(temp[0].lon, temp[0].lat);
+
+    map.centerAndZoom(point, 18);
+    map.enableScrollWheelZoom(true);
+    map.setTilt(35);
+
+    var track = new Track.View(map, {
+        lineLayerOptions: {
+            style: {
+                strokeWeight: 8,
+                strokeLineJoin: 'round',
+                strokeLineCap: 'round'
+            },
+        }
+    });
+
+    var trackData = [];
+    var colorOffset = [];
+    for (var item of temp) {
+        var point = new BMapGL.Point(item.lon, item.lat);
+        var trackPoint = new Track.TrackPoint(point);
+        trackData.push(trackPoint);
+        // 不同速度区间对应颜色
+        var choose = [0.9, 0.5, 0.1];
+        var color = choose[Math.floor(Math.random() * choose.length)];
+        colorOffset.push(color);
+    }
+    var startMarker = new BMapGL.Marker(trackData[0].getPoint(), {
+        icon: new BMapGL.Icon('https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/start.png', new BMapGL.Size(25, 40)),
+        offset: new BMapGL.Size(0, -16),
+    });
+    map.addOverlay(startMarker);
+    var endMarker = new BMapGL.Marker(trackData[trackData.length-1].getPoint(), {
+        icon: new BMapGL.Icon('https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/end.png', new BMapGL.Size(25, 40)),
+        offset: new BMapGL.Size(0, -16),
+
+    });
+    map.addOverlay(endMarker);
+    var duration = 60000;
+    var step = duration / trackData.length;
+
+    var trackRoad = new Track.LiveTrack({
+        // visible: false,
+        duration: step,
+        linearTexture: [[0, '#f45e0c'], [0.5, '#f6cd0e'], [1, '#2ad61d']],
+        guideStyle: {
+            style:{
+                traceDisappear: false,
+                traceStart: true,
+                sequence: true,
+                marginLength: 32,
+                arrowColor: '#fff',
+                strokeColor: 'rgba(27, 142, 236, 1)',
+                strokeTextureUrl: 'https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/down.png',
+                strokeTextureWidth: 64,
+                strokeTextureHeight: 32,
+            }
+        },
+    });
+
+    trackRoad.setGuidTrackPath(trackData);
+    trackRoad.on(Track.LineCodes.GUIDE_STATUS, (e) => {
+        if (e.status === Track.GuidCodes.ADD_TO_MAP) {
+            var guidTrack = trackRoad.getGuidTrack();
+            guidTrack.on(Track.LineCodes.STATUS, (status) => {
+                switch (status) {
+                    case Track.StatusCodes.FINISH:
+                        var box = trackRoad.getBBox();
+                        if(box){
+                            var bounds = [new BMapGL.Point(box[0], box[1]), new BMapGL.Point(box[2], box[3])];
+                            map.setViewport(bounds);
+                        }
+                        break;
+                    default:
+                        break;
+                }
+            });
+        }
+    });
+    var movePoint = new Track.ModelPoint({ point: trackData[0].getPoint(), style:{
+            url: 'https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/bus.glb',
+            scale: 9,
+            level: 18,
+            rotationX: 90,
+            rotationY: 90,
+            rotationZ: 0
+        } });
+    movePoint.setRotation(trackRoad.getGuidTrack().getStepInfoByIndex(0).angle);
+
+    trackRoad.setMovePoint(movePoint);
+
+    track.addTrackLine(trackRoad);
+    track.focusTrack(trackRoad);
+
+    var ani;
+    var start = null;
+    var index = 0;
+    var finishIndex = 0;
+
+
+    function startAnimation(timestamp) {
+        if (!start) start = timestamp;
+        var progress = timestamp - start;
+        var next = step * (index - finishIndex);
+
+        if(progress > next){
+            if(index<trackData.length){
+                movePoint.moveTo(trackData[index]);
+                var obj = trackRoad.getGuidTrack().getStepInfoByIndex(index);
+                trackRoad.setGradientColors(colorOffset.slice(0,index+1));
+                index++;
+            }else{
+                pauseAnimation();
+            }
+
+        }
+        ani = requestAnimationFrame(startAnimation);
+    }
+
+
+    function stopAnimation() {
+        pauseAnimation();
+        index = 0;
+        finishIndex = index;
+
+        start = null;
+        trackRoad.clearTrackPoint();
+        movePoint.setPoint(trackData[0].getPoint());
+        movePoint.setRotation(trackRoad.getGuidTrack().getStepInfoByIndex(0).angle);
+    }
+    function pauseAnimation() {
+        cancelAnimationFrame(ani);
+        finishIndex = index;
+        start = null;
+    }
+    function resumeAnimation() {
+        startAnimation();
+    }
+</script>
 @}
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tOrderTaxi/tOrderTaxi_info.js b/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tOrderTaxi/tOrderTaxi_info.js
index 0ff9ae8..c6d737b 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tOrderTaxi/tOrderTaxi_info.js
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tOrderTaxi/tOrderTaxi_info.js
@@ -125,156 +125,156 @@
     ajax.start();
 }
 
-var map = new BMapGL.Map('allmap', {
-    style: 'grayed-out',
-    displayOptions: {
-        indoor: false,
-        poiText: false,
-        poiIcon: false,
-        building: false,
-    }
-});
-var point = new BMapGL.Point(demo_data[0][0], demo_data[0][1]);
-
-map.centerAndZoom(point, 18);
-map.enableScrollWheelZoom(true);
-map.setTilt(35);
-
-var track = new Track.View(map, {
-    lineLayerOptions: {
-        style: {
-            strokeWeight: 8,
-            strokeLineJoin: 'round',
-            strokeLineCap: 'round'
-        },
-    }
-});
-
-var trackData = [];
-var colorOffset = [];
-
-function orderTrack(data) {
-    for(var item in data){
-        var point = new BMapGL.Point(data[item].longitude, data[item].latitude);
-        var trackPoint = new Track.TrackPoint(point);
-        trackData.push(trackPoint);
-        // 不同速度区间对应颜色
-        var choose = [0.9, 0.5, 0.1];
-        var color = choose[Math.floor(Math.random() * choose.length)];
-        colorOffset.push(color);
-    }
-}
-var startMarker = new BMapGL.Marker(trackData[0].getPoint(), {
-    icon: new BMapGL.Icon('https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/start.png', new BMapGL.Size(25, 40)),
-    offset: new BMapGL.Size(0, -16),
-});
-map.addOverlay(startMarker);
-var endMarker = new BMapGL.Marker(trackData[trackData.length-1].getPoint(), {
-    icon: new BMapGL.Icon('https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/end.png', new BMapGL.Size(25, 40)),
-    offset: new BMapGL.Size(0, -16),
-
-});
-map.addOverlay(endMarker);
-var duration = 60000;
-var step = duration / trackData.length;
-
-var trackRoad = new Track.LiveTrack({
-    // visible: false,
-    duration: step,
-    linearTexture: [[0, '#f45e0c'], [0.5, '#f6cd0e'], [1, '#2ad61d']],
-    guideStyle: {
-        style:{
-            traceDisappear: false,
-            traceStart: true,
-            sequence: true,
-            marginLength: 32,
-            arrowColor: '#fff',
-            strokeColor: 'rgba(27, 142, 236, 1)',
-            strokeTextureUrl: 'https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/down.png',
-            strokeTextureWidth: 64,
-            strokeTextureHeight: 32,
-        }
-    },
-});
-
-trackRoad.setGuidTrackPath(trackData);
-trackRoad.on(Track.LineCodes.GUIDE_STATUS, (e) => {
-    if (e.status === Track.GuidCodes.ADD_TO_MAP) {
-        var guidTrack = trackRoad.getGuidTrack();
-        guidTrack.on(Track.LineCodes.STATUS, (status) => {
-            switch (status) {
-                case Track.StatusCodes.FINISH:
-                    var box = trackRoad.getBBox();
-                    if(box){
-                        var bounds = [new BMapGL.Point(box[0], box[1]), new BMapGL.Point(box[2], box[3])];
-                        map.setViewport(bounds);
-                    }
-                    break;
-                default:
-                    break;
-            }
-        });
-    }
-});
-var movePoint = new Track.ModelPoint({ point: trackData[0].getPoint(), style:{
-        url: 'https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/bus.glb',
-        scale: 9,
-        level: 18,
-        rotationX: 90,
-        rotationY: 90,
-        rotationZ: 0
-    } });
-movePoint.setRotation(trackRoad.getGuidTrack().getStepInfoByIndex(0).angle);
-
-trackRoad.setMovePoint(movePoint);
-
-track.addTrackLine(trackRoad);
-track.focusTrack(trackRoad);
-
-var ani;
-var start = null;
-var index = 0;
-var finishIndex = 0;
-
-
-function startAnimation(timestamp) {
-    if (!start) start = timestamp;
-    var progress = timestamp - start;
-    var next = step * (index - finishIndex);
-
-    if(progress > next){
-        if(index<trackData.length){
-            movePoint.moveTo(trackData[index]);
-            var obj = trackRoad.getGuidTrack().getStepInfoByIndex(index);
-            trackRoad.setGradientColors(colorOffset.slice(0,index+1));
-            index++;
-        }else{
-            pauseAnimation();
-        }
-
-    }
-    ani = requestAnimationFrame(startAnimation);
-}
-
-
-function stopAnimation() {
-    pauseAnimation();
-    index = 0;
-    finishIndex = index;
-
-    start = null;
-    trackRoad.clearTrackPoint();
-    movePoint.setPoint(trackData[0].getPoint());
-    movePoint.setRotation(trackRoad.getGuidTrack().getStepInfoByIndex(0).angle);
-}
-function pauseAnimation() {
-    cancelAnimationFrame(ani);
-    finishIndex = index;
-    start = null;
-}
-function resumeAnimation() {
-    startAnimation();
-}
+// var map = new BMapGL.Map('allmap', {
+//     style: 'grayed-out',
+//     displayOptions: {
+//         indoor: false,
+//         poiText: false,
+//         poiIcon: false,
+//         building: false,
+//     }
+// });
+// var point = new BMapGL.Point(demo_data[0][0], demo_data[0][1]);
+//
+// map.centerAndZoom(point, 18);
+// map.enableScrollWheelZoom(true);
+// map.setTilt(35);
+//
+// var track = new Track.View(map, {
+//     lineLayerOptions: {
+//         style: {
+//             strokeWeight: 8,
+//             strokeLineJoin: 'round',
+//             strokeLineCap: 'round'
+//         },
+//     }
+// });
+//
+// var trackData = [];
+// var colorOffset = [];
+//
+// function orderTrack(data) {
+//     for(var item in data){
+//         var point = new BMapGL.Point(data[item].longitude, data[item].latitude);
+//         var trackPoint = new Track.TrackPoint(point);
+//         trackData.push(trackPoint);
+//         // 不同速度区间对应颜色
+//         var choose = [0.9, 0.5, 0.1];
+//         var color = choose[Math.floor(Math.random() * choose.length)];
+//         colorOffset.push(color);
+//     }
+// }
+// var startMarker = new BMapGL.Marker(trackData[0].getPoint(), {
+//     icon: new BMapGL.Icon('https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/start.png', new BMapGL.Size(25, 40)),
+//     offset: new BMapGL.Size(0, -16),
+// });
+// map.addOverlay(startMarker);
+// var endMarker = new BMapGL.Marker(trackData[trackData.length-1].getPoint(), {
+//     icon: new BMapGL.Icon('https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/end.png', new BMapGL.Size(25, 40)),
+//     offset: new BMapGL.Size(0, -16),
+//
+// });
+// map.addOverlay(endMarker);
+// var duration = 60000;
+// var step = duration / trackData.length;
+//
+// var trackRoad = new Track.LiveTrack({
+//     // visible: false,
+//     duration: step,
+//     linearTexture: [[0, '#f45e0c'], [0.5, '#f6cd0e'], [1, '#2ad61d']],
+//     guideStyle: {
+//         style:{
+//             traceDisappear: false,
+//             traceStart: true,
+//             sequence: true,
+//             marginLength: 32,
+//             arrowColor: '#fff',
+//             strokeColor: 'rgba(27, 142, 236, 1)',
+//             strokeTextureUrl: 'https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/down.png',
+//             strokeTextureWidth: 64,
+//             strokeTextureHeight: 32,
+//         }
+//     },
+// });
+//
+// trackRoad.setGuidTrackPath(trackData);
+// trackRoad.on(Track.LineCodes.GUIDE_STATUS, (e) => {
+//     if (e.status === Track.GuidCodes.ADD_TO_MAP) {
+//         var guidTrack = trackRoad.getGuidTrack();
+//         guidTrack.on(Track.LineCodes.STATUS, (status) => {
+//             switch (status) {
+//                 case Track.StatusCodes.FINISH:
+//                     var box = trackRoad.getBBox();
+//                     if(box){
+//                         var bounds = [new BMapGL.Point(box[0], box[1]), new BMapGL.Point(box[2], box[3])];
+//                         map.setViewport(bounds);
+//                     }
+//                     break;
+//                 default:
+//                     break;
+//             }
+//         });
+//     }
+// });
+// var movePoint = new Track.ModelPoint({ point: trackData[0].getPoint(), style:{
+//         url: 'https://mapopen-pub-jsapi.bj.bcebos.com/jsapiGlgeo/img/bus.glb',
+//         scale: 9,
+//         level: 18,
+//         rotationX: 90,
+//         rotationY: 90,
+//         rotationZ: 0
+//     } });
+// movePoint.setRotation(trackRoad.getGuidTrack().getStepInfoByIndex(0).angle);
+//
+// trackRoad.setMovePoint(movePoint);
+//
+// track.addTrackLine(trackRoad);
+// track.focusTrack(trackRoad);
+//
+// var ani;
+// var start = null;
+// var index = 0;
+// var finishIndex = 0;
+//
+//
+// function startAnimation(timestamp) {
+//     if (!start) start = timestamp;
+//     var progress = timestamp - start;
+//     var next = step * (index - finishIndex);
+//
+//     if(progress > next){
+//         if(index<trackData.length){
+//             movePoint.moveTo(trackData[index]);
+//             var obj = trackRoad.getGuidTrack().getStepInfoByIndex(index);
+//             trackRoad.setGradientColors(colorOffset.slice(0,index+1));
+//             index++;
+//         }else{
+//             pauseAnimation();
+//         }
+//
+//     }
+//     ani = requestAnimationFrame(startAnimation);
+// }
+//
+//
+// function stopAnimation() {
+//     pauseAnimation();
+//     index = 0;
+//     finishIndex = index;
+//
+//     start = null;
+//     trackRoad.clearTrackPoint();
+//     movePoint.setPoint(trackData[0].getPoint());
+//     movePoint.setRotation(trackRoad.getGuidTrack().getStepInfoByIndex(0).angle);
+// }
+// function pauseAnimation() {
+//     cancelAnimationFrame(ani);
+//     finishIndex = index;
+//     start = null;
+// }
+// function resumeAnimation() {
+//     startAnimation();
+// }
 
 $(function() {
     $('#orderType').on('change', function () {
@@ -284,8 +284,6 @@
             $('.travelTime').show();
         }
     })
-    console.log("id")
-    console.log($("#id").val())
     if(typeof $("#id").val() != "undefined"){
         getTrajectory();
     }
@@ -312,5 +310,16 @@
         }
     });
 }
+function orderTrack(data) {
+    // for (var item of data) {
+    //     var point = new BMapGL.Point(item.lon, item.lat);
+    //     var trackPoint = new Track.TrackPoint(point);
+    //     trackData.push(trackPoint);
+    //     // 不同速度区间对应颜色
+    //     var choose = [0.9, 0.5, 0.1];
+    //     var color = choose[Math.floor(Math.random() * choose.length)];
+    //     colorOffset.push(color);
+    // }
+}
 
 

--
Gitblit v1.7.1