正在显示
1 个修改的文件
包含
73 行增加
和
36 行删除
@@ -31,60 +31,90 @@ | @@ -31,60 +31,90 @@ | ||
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 | - }) | 93 | + _this.$message.error('获取车辆位置失败:' + error.toString()); |
94 | + }); | ||
95 | + }, | ||
96 | + initMap() { | ||
97 | + AMapLoader.load({ | ||
98 | + key: 'fdb27c13681d084e85ff8457b5cbe540', | ||
99 | + version: '2.0', | ||
100 | + plugins: [], // 可以加载地图插件,比如定位、地图工具等 | ||
101 | + }).then((AMap) => { | ||
102 | + this.mapInstance = new AMap.Map('mapContainer', { | ||
103 | + zoom: 10, | ||
104 | + center: [116.397428, 39.90923], // 设置地图中心点 | ||
105 | + }); | ||
106 | + }).catch((err) => { | ||
107 | + console.error(err); | ||
108 | + }); | ||
67 | }, | 109 | }, |
68 | }, | 110 | }, |
69 | mounted() { | 111 | mounted() { |
70 | - AMapLoader.load({ | ||
71 | - key: 'fdb27c13681d084e85ff8457b5cbe540', | ||
72 | - version: '2.0', | ||
73 | - plugins: [], // 可以加载地图插件,比如定位、地图工具等 | ||
74 | - }).then((AMap) => { | ||
75 | - this.mapInstance = new AMap.Map('mapContainer', { | ||
76 | - zoom: 10, | ||
77 | - center: [116.397428, 39.90923], // 设置地图中心点 | ||
78 | - }); | ||
79 | - }).catch((err) => { | ||
80 | - console.error(err); | ||
81 | - }); | 112 | + this.initMap(); |
82 | }, | 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; |
@@ -94,10 +124,17 @@ | @@ -94,10 +124,17 @@ | ||
94 | } | 124 | } |
95 | </style> | 125 | </style> |
96 | <style> | 126 | <style> |
97 | - .my-text-area .el-textarea__inner{ | ||
98 | - min-height: 28px; | ||
99 | - height: 28px; | ||
100 | - border-bottom-left-radius: 0; | ||
101 | - border-top-left-radius: 0; | ||
102 | - } | 127 | + .my-text-area .el-textarea__inner{ |
128 | + min-height: 28px; | ||
129 | + height: 28px; | ||
130 | + border-bottom-left-radius: 0; | ||
131 | + border-top-left-radius: 0; | ||
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> |
-
请 注册 或 登录 后发表评论