| | |
| | | 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; |
| | | } |
| | | String value = redisUtil.getValues(keys.substring(0, keys.length() - 1)); |
| | | JSONArray jsonArray = JSON.parseArray(value); |
| | | int size = driverOnlineService.queryOnlineDriverCount(null, null); |
| | | size++; |
| | | } |
| | | // 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){ |
| | |
| | | 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; |
| | |
| | | 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.*; |
| | |
| | | * 跳转到修改出租车订单 |
| | | */ |
| | | @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); |
| | | // 查询司机扣款 |
| | |
| | | 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"; |
| | | } |
| | | |
| | |
| | | * 跳转到出租车订单轨迹页面 |
| | | */ |
| | | @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"; |
| | | } |
| | | |
| | |
| | | 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; |
| | |
| | | |
| | | |
| | | |
| | | |
| | | @Autowired |
| | | private RedisUtil redisUtil; |
| | | /** |
| | | * 获取列表数据 |
| | | * @param name |
| | |
| | | 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; |
| | | } |
| | |
| | | <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> |
| | |
| | | <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> |
| | | @} |
| | |
| | | <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> |
| | | @} |
| | |
| | | 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 () { |
| | |
| | | $('.travelTime').show(); |
| | | } |
| | | }) |
| | | console.log("id") |
| | | console.log($("#id").val()) |
| | | if(typeof $("#id").val() != "undefined"){ |
| | | getTrajectory(); |
| | | } |
| | |
| | | } |
| | | }); |
| | | } |
| | | 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); |
| | | // } |
| | | } |
| | | |
| | | |