无关风月
2025-02-14 8db5d3eafb1cc5352b1bdf2c281c54c7fa80db93
补充
6个文件已修改
909 ■■■■■ 已修改文件
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOnlineServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_edit.html 308 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_trajectory.html 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tOrderTaxi/tOrderTaxi_info.js 313 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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){
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";
    }
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;
    }
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>
@}
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>
@}
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);
    // }
}