作者 小范

车辆定位界面完善

@@ -31,42 +31,69 @@ @@ -31,42 +31,69 @@
31 <div id="mapContainer" style="width: 100%; height: 500px;"></div> 31 <div id="mapContainer" style="width: 100%; height: 500px;"></div>
32 </div> 32 </div>
33 </template> 33 </template>
34 -<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.7.6/proj4.js"></script>  
35 <script> 34 <script>
36 import AMapLoader from '@amap/amap-jsapi-loader'; 35 import AMapLoader from '@amap/amap-jsapi-loader';
37 - import {selectVehicle} from '../../api/consigner/vehicle';  
38 - import {list} from "../../api/consigner/check"; 36 + import { selectVehicle } from '../../api/consigner/vehicle';
39 37
40 export default { 38 export default {
41 name: 'MapComponent', 39 name: 'MapComponent',
42 data() { 40 data() {
43 return { 41 return {
44 mapInstance: null, 42 mapInstance: null,
45 - queryInfo:{  
46 - vno:'',  
47 - vnocolor:'' 43 + queryInfo: {
  44 + vno: '',
  45 + vnocolor: ''
48 } 46 }
49 }; 47 };
50 }, 48 },
51 - methods:{ 49 + methods: {
52 getList() { 50 getList() {
53 - const _this = this 51 + const _this = this;
54 selectVehicle(this.queryInfo).then((response) => { 52 selectVehicle(this.queryInfo).then((response) => {
55 - const res = response.data  
56 - //console.log(response.data) 53 + const res = response.data;
57 if (res.code !== '200') { 54 if (res.code !== '200') {
58 - return _this.$message.error('获取消息收发记录,失败!') 55 + return _this.$message.error('获取车辆位置失败!');
  56 + }
  57 + if(res.data.data!=='' && res.data.data!=null){
  58 + // 获取车辆位置信息
  59 + const vehicle = res.data.data.firstVcl;
  60 + // 在获取车辆位置成功的部分,创建信息窗口或者自定义标记
  61 + const markerContent = document.createElement('div');
  62 + markerContent.innerHTML = `
  63 + <div class="rounded-corner" STYLE="width: 200px;background-color: rgba(255,255,255,0.7);text-align: center">
  64 + <p>车牌号:${vehicle.vno}</p >
  65 + <p>已行驶距离:${vehicle.runDistance}公里</p >
  66 + <p>剩余距离:${vehicle.remainDistance}公里</p >
  67 + </div>
  68 + `;
  69 + if (vehicle.lon && vehicle.lat) {
  70 + const lon = parseFloat(vehicle.lon) / 600000.0; // 将经度字符串转换为数值并除以 600000.0
  71 + const lat = parseFloat(vehicle.lat) / 600000.0; // 将纬度字符串转换为数值并除以 600000.0
  72 + //const coords = wgs84togcj02(lon, lat);
  73 + // 添加车辆位置标记
  74 + const marker = new AMap.Marker({
  75 + position: [lon, lat],
  76 + map: _this.mapInstance,
  77 + content: markerContent
  78 + });
  79 + const defaultMarker = new AMap.Marker({
  80 + position: [lon, lat],
  81 + map: _this.mapInstance,
  82 + });
  83 + // 移动地图中心到车辆位置
  84 + _this.mapInstance.setCenter([lon, lat]);
  85 + _this.$message.success('获取车辆位置成功!');
  86 + } else {
  87 + _this.$message.warning('车辆位置信息不完整!');
  88 + }
  89 + }else{
  90 + return _this.$message.error('无相关车辆信息返回');
59 } 91 }
60 - // 获取列表数据  
61 - console.log(res.data.data.firstVcl)  
62 - _this.$message.success('获取消息收发记录,成功!')  
63 }).catch(error => { 92 }).catch(error => {
64 - // 关闭加载  
65 - _this.$message.error(error.toString())  
66 - })  
67 - }, 93 + _this.$message.error('获取车辆位置失败:' + error.toString());
  94 + });
68 }, 95 },
69 - mounted() { 96 + initMap() {
70 AMapLoader.load({ 97 AMapLoader.load({
71 key: 'fdb27c13681d084e85ff8457b5cbe540', 98 key: 'fdb27c13681d084e85ff8457b5cbe540',
72 version: '2.0', 99 version: '2.0',
@@ -80,11 +107,14 @@ @@ -80,11 +107,14 @@
80 console.error(err); 107 console.error(err);
81 }); 108 });
82 }, 109 },
  110 + },
  111 + mounted() {
  112 + this.initMap();
  113 + },
83 }; 114 };
84 </script> 115 </script>
85 116
86 <style scoped> 117 <style scoped>
87 - /* 可以添加一些样式来设置地图容器的大小等 */  
88 .my-text-area .prepand{ 118 .my-text-area .prepand{
89 float: left; 119 float: left;
90 width:89px; 120 width:89px;
@@ -100,4 +130,11 @@ @@ -100,4 +130,11 @@
100 border-bottom-left-radius: 0; 130 border-bottom-left-radius: 0;
101 border-top-left-radius: 0; 131 border-top-left-radius: 0;
102 } 132 }
  133 + .rounded-corner {
  134 + border-radius: 10px; /* 设置圆角的半径为10像素 */
  135 + background-color: #f0f0f0; /* 背景颜色 */
  136 + padding: 10px; /* 内边距 */
  137 + margin: 10px; /* 外边距 */
  138 + box-shadow: 0 0 5px #ddd; /* 盒子阴影效果 */
  139 + }
103 </style> 140 </style>