无关风月
2025-02-12 06ecfd333bfdce96fab3ee4c056ee12782435e10
补充
3个文件已修改
293 ■■■■ 已修改文件
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_edit.html 289 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tOrderTaxi/tOrderTaxi_info.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java
@@ -123,7 +123,7 @@
                model.addAttribute("companyMoney","");
            }
            TPubTransactionDetails pubTransactionDetailDriver = tPubTransactionDetails.stream().filter(e -> e.getOrderType().equals(2)).findFirst().orElse(null);
            if(Objects.nonNull(pubTransactionDetailCompany)){
            if(Objects.nonNull(pubTransactionDetailDriver)){
                model.addAttribute("driverMoney",pubTransactionDetailDriver.getMoney());
            }else {
                model.addAttribute("driverMoney","");
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_edit.html
@@ -133,153 +133,176 @@
<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 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>-->
<!--    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]);-->
    map.centerAndZoom(point, 18);
    map.enableScrollWheelZoom(true);
    map.setTilt(35);
<!--    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 track = new Track.View(map, {-->
<!--        lineLayerOptions: {-->
<!--            style: {-->
<!--                strokeWeight: 8,-->
<!--                strokeLineJoin: 'round',-->
<!--                strokeLineCap: 'round'-->
<!--            },-->
<!--        }-->
<!--    });-->
    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 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),-->
    });
    map.addOverlay(endMarker);
    var duration = 60000;
    var step = duration / trackData.length;
<!--    });-->
<!--    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,
            }
        },
    });
<!--    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.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);
<!--    trackRoad.setMovePoint(movePoint);-->
    track.addTrackLine(trackRoad);
    track.focusTrack(trackRoad);
<!--    track.addTrackLine(trackRoad);-->
<!--    track.focusTrack(trackRoad);-->
    var ani;
    var start = null;
    var index = 0;
    var finishIndex = 0;
<!--    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/static/modular/system/tOrderTaxi/tOrderTaxi_info.js
@@ -284,6 +284,8 @@
            $('.travelTime').show();
        }
    })
    console.log("id")
    console.log($("#id").val())
    if(typeof $("#id").val() != "undefined"){
        getTrajectory();
    }