作者 小范

车辆定位界面完善

... ... @@ -31,60 +31,90 @@
<div id="mapContainer" style="width: 100%; height: 500px;"></div>
</div>
</template>
<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.7.6/proj4.js"></script>
<script>
import AMapLoader from '@amap/amap-jsapi-loader';
import {selectVehicle} from '../../api/consigner/vehicle';
import {list} from "../../api/consigner/check";
import { selectVehicle } from '../../api/consigner/vehicle';
export default {
name: 'MapComponent',
data() {
return {
mapInstance: null,
queryInfo:{
vno:'',
vnocolor:''
queryInfo: {
vno: '',
vnocolor: ''
}
};
},
methods:{
methods: {
getList() {
const _this = this
const _this = this;
selectVehicle(this.queryInfo).then((response) => {
const res = response.data
//console.log(response.data)
const res = response.data;
if (res.code !== '200') {
return _this.$message.error('获取消息收发记录,失败!')
return _this.$message.error('获取车辆位置失败!');
}
if(res.data.data!=='' && res.data.data!=null){
// 获取车辆位置信息
const vehicle = res.data.data.firstVcl;
// 在获取车辆位置成功的部分,创建信息窗口或者自定义标记
const markerContent = document.createElement('div');
markerContent.innerHTML = `
<div class="rounded-corner" STYLE="width: 200px;background-color: rgba(255,255,255,0.7);text-align: center">
<p>车牌号:${vehicle.vno}</p >
<p>已行驶距离:${vehicle.runDistance}公里</p >
<p>剩余距离:${vehicle.remainDistance}公里</p >
</div>
`;
if (vehicle.lon && vehicle.lat) {
const lon = parseFloat(vehicle.lon) / 600000.0; // 将经度字符串转换为数值并除以 600000.0
const lat = parseFloat(vehicle.lat) / 600000.0; // 将纬度字符串转换为数值并除以 600000.0
//const coords = wgs84togcj02(lon, lat);
// 添加车辆位置标记
const marker = new AMap.Marker({
position: [lon, lat],
map: _this.mapInstance,
content: markerContent
});
const defaultMarker = new AMap.Marker({
position: [lon, lat],
map: _this.mapInstance,
});
// 移动地图中心到车辆位置
_this.mapInstance.setCenter([lon, lat]);
_this.$message.success('获取车辆位置成功!');
} else {
_this.$message.warning('车辆位置信息不完整!');
}
}else{
return _this.$message.error('无相关车辆信息返回');
}
// 获取列表数据
console.log(res.data.data.firstVcl)
_this.$message.success('获取消息收发记录,成功!')
}).catch(error => {
// 关闭加载
_this.$message.error(error.toString())
})
_this.$message.error('获取车辆位置失败:' + error.toString());
});
},
initMap() {
AMapLoader.load({
key: 'fdb27c13681d084e85ff8457b5cbe540',
version: '2.0',
plugins: [], // 可以加载地图插件,比如定位、地图工具等
}).then((AMap) => {
this.mapInstance = new AMap.Map('mapContainer', {
zoom: 10,
center: [116.397428, 39.90923], // 设置地图中心点
});
}).catch((err) => {
console.error(err);
});
},
},
mounted() {
AMapLoader.load({
key: 'fdb27c13681d084e85ff8457b5cbe540',
version: '2.0',
plugins: [], // 可以加载地图插件,比如定位、地图工具等
}).then((AMap) => {
this.mapInstance = new AMap.Map('mapContainer', {
zoom: 10,
center: [116.397428, 39.90923], // 设置地图中心点
});
}).catch((err) => {
console.error(err);
});
this.initMap();
},
};
</script>
<style scoped>
/* 可以添加一些样式来设置地图容器的大小等 */
.my-text-area .prepand{
float: left;
width:89px;
... ... @@ -94,10 +124,17 @@
}
</style>
<style>
.my-text-area .el-textarea__inner{
min-height: 28px;
height: 28px;
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.my-text-area .el-textarea__inner{
min-height: 28px;
height: 28px;
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.rounded-corner {
border-radius: 10px; /* 设置圆角的半径为10像素 */
background-color: #f0f0f0; /* 背景颜色 */
padding: 10px; /* 内边距 */
margin: 10px; /* 外边距 */
box-shadow: 0 0 5px #ddd; /* 盒子阴影效果 */
}
</style>
... ...