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