...
|
...
|
@@ -4,7 +4,8 @@ |
|
|
<el-card style="background-color: #F5F7FA">
|
|
|
<el-row>
|
|
|
<el-form :model="queryInfo" :rules="rules" ref="ruleForm">
|
|
|
<el-col :span="4.5">
|
|
|
<el-row>
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="" prop="vclN">
|
|
|
<el-input v-model="queryInfo.vclN" size="small" style="width: 170px"
|
|
|
placeholder="车牌号" clearable required>
|
...
|
...
|
@@ -12,11 +13,11 @@ |
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="4.5">
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="" prop="vco">
|
|
|
<div class="my-text-area">
|
|
|
<div class="el-input-group__prepend prepand">车牌类型</div>
|
|
|
<el-select v-model="queryInfo.vco" placeholder="车牌类型" style="width: 70px">
|
|
|
<el-select v-model="queryInfo.vco" placeholder="车牌类型" style="width: 100px">
|
|
|
<el-option label="蓝牌" value="1"></el-option>
|
|
|
<el-option label="黄牌" value="2"></el-option>
|
|
|
<el-option label="绿牌" value="3"></el-option>
|
...
|
...
|
@@ -24,7 +25,20 @@ |
|
|
</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6.5">
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="" prop="satellite">
|
|
|
<div class="my-text-area">
|
|
|
<div class="el-input-group__prepend prepand">卫星</div>
|
|
|
<el-select required v-model="satellite" placeholder="卫星" style="width: 100px">
|
|
|
<el-option label="北斗" value="1"></el-option>
|
|
|
<el-option label="GPS" value="2"></el-option>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="" prop="qryEtm">
|
|
|
<div class="my-text-area">
|
|
|
<div class="el-input-group__prepend prepand">开始时间</div>
|
...
|
...
|
@@ -41,7 +55,7 @@ |
|
|
</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6.5">
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="" prop="qryBtm">
|
|
|
<div class="my-text-area">
|
|
|
<div class="el-input-group__prepend prepand">结束时间</div>
|
...
|
...
|
@@ -58,13 +72,14 @@ |
|
|
</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-form>
|
|
|
<el-col :span="1">
|
|
|
<el-button type="primary" size="mini" @click="getList()">
|
|
|
查询
|
|
|
</el-button>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
</el-row>
|
|
|
</el-card>
|
|
|
</el-row>
|
|
|
<div id="mapContainer" ref="mapContainer" style="width: 100%; height: 500px;"></div>
|
...
|
...
|
@@ -72,7 +87,7 @@ |
|
|
</template>
|
|
|
<script>
|
|
|
import AMapLoader from '@amap/amap-jsapi-loader';
|
|
|
import { historyTrack } from '../../api/consigner/vehicle';
|
|
|
import { historyTrack,gpshistoryTrack } from '../../api/consigner/vehicle';
|
|
|
|
|
|
|
|
|
export default {
|
...
|
...
|
@@ -87,6 +102,7 @@ |
|
|
//结束时间
|
|
|
qryBtm: '',
|
|
|
},
|
|
|
satellite:'1',
|
|
|
pickerOptions: {
|
|
|
shortcuts: [{
|
|
|
text: '最近一周',
|
...
|
...
|
@@ -155,6 +171,7 @@ |
|
|
},
|
|
|
methods: {
|
|
|
getList() {
|
|
|
if(this.satellite=='1'){
|
|
|
this.$refs.ruleForm.validate(valid => {
|
|
|
if (!valid) return;
|
|
|
const _this = this;
|
...
|
...
|
@@ -170,6 +187,24 @@ |
|
|
_this.$message.error('获取车辆轨迹失败:' + error.toString());
|
|
|
});
|
|
|
})
|
|
|
}else{
|
|
|
this.$refs.ruleForm.validate(valid => {
|
|
|
if (!valid) return;
|
|
|
const _this = this;
|
|
|
gpshistoryTrack(this.queryInfo).then((response) => {
|
|
|
const res = response.data;
|
|
|
if (res.code !== '200') {
|
|
|
return _this.$message.error('获取车辆轨迹失败!');
|
|
|
}
|
|
|
// 调用initMap方法,并将轨迹数据传递过去
|
|
|
_this.initMapGPS(res.data.data);
|
|
|
_this.$message.success('获取车辆轨迹成功!');
|
|
|
}).catch(error => {
|
|
|
_this.$message.error('获取车辆轨迹失败:' + error.toString());
|
|
|
});
|
|
|
})
|
|
|
}
|
|
|
|
|
|
},
|
|
|
initMap(trackArray) {
|
|
|
const _this = this;
|
...
|
...
|
@@ -201,6 +236,36 @@ |
|
|
console.error('初始化地图失败:', err);
|
|
|
});
|
|
|
},
|
|
|
initMapGPS(DATA) {
|
|
|
const _this = this;
|
|
|
AMapLoader.load({
|
|
|
key: 'fdb27c13681d084e85ff8457b5cbe540',
|
|
|
version: '2.0',
|
|
|
plugins: [], // 可以加载地图插件,比如定位、地图工具等
|
|
|
}).then((AMap) => {
|
|
|
// 创建地图对象并存储在 _this.mapInstance 中
|
|
|
_this.map = new AMap.Map('mapContainer', {
|
|
|
zoom: 10, // 设置地图缩放级别
|
|
|
center: [116.397428, 39.90923], // 设置地图中心点坐标
|
|
|
});
|
|
|
// 将轨迹数据添加到地图上
|
|
|
//var lineArr = trackArray.map((item) => [item.longitude / 600000.0, item.latitude / 600000.0]);
|
|
|
this.convertedCoords = this.convertBDToAMapGPS(DATA);
|
|
|
console.log(this.convertedCoords)
|
|
|
_this.poly = new AMap.Polyline({
|
|
|
path: this.convertedCoords, // 设置折线路径
|
|
|
strokeColor: "#3366ff", // 线颜色
|
|
|
strokeOpacity: 1, // 线透明度
|
|
|
strokeWeight: 3, // 线宽
|
|
|
strokeStyle: "solid", // 线样式
|
|
|
});
|
|
|
_this.poly.setMap(_this.map);
|
|
|
_this.map.setCenter(this.convertedCoords[0])
|
|
|
//_this.map.setFitView();
|
|
|
}).catch((err) => {
|
|
|
console.error('初始化地图失败:', err);
|
|
|
});
|
|
|
},
|
|
|
convertBDToAMap(bdCoordData) {
|
|
|
const aMapCoordData = [];
|
|
|
bdCoordData.forEach(coord => {
|
...
|
...
|
@@ -210,7 +275,15 @@ |
|
|
});
|
|
|
return aMapCoordData;
|
|
|
},
|
|
|
|
|
|
convertBDToAMapGPS(bdCoordData) {
|
|
|
const aMapCoordData = [];
|
|
|
bdCoordData.forEach(coord => {
|
|
|
const lon = parseFloat(coord.lon); // 将经度从北斗格式转换为高德地图格式
|
|
|
const lat = parseFloat(coord.lat); // 将纬度从北斗格式转换为高德地图格式
|
|
|
aMapCoordData.push([lon, lat]); // 添加到结果数组
|
|
|
});
|
|
|
return aMapCoordData;
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
...
|
...
|
|