html:

<template><div class="orderMonitoringBox"><!--  地图开始  --><baidu-mapref="orderMap"@ready="mapReady"class="map-view":center="map.center":zoom="map.zoom":scroll-wheel-zoom="map.scrollWheelZoom":mapClick="map.mapClick":ak="map.ak"><!--比例尺控件--><bm-scale anchor="BMAP_ANCHOR_TOP_RIGHT"></bm-scale><!--缩放控件--><bm-navigation anchor="BMAP_ANCHOR_BOTTOM_RIGHT"></bm-navigation><!--聚合动态添加的点坐标--><bm-marker-clusterer :averageCenter="true"><bm-marker:icon="markerIcon"v-for="(marker,index) of markers":key="index":position="{lng: marker.lng, lat: marker.lat}"@click="lookDetail(marker)"></bm-marker><bm-marker:icon="markerIcon1"v-for="(marker,index1) of markers1":key="index1+'a'":position="{lng: marker.lng, lat: marker.lat}"@click="lookDetail(marker)"></bm-marker></bm-marker-clusterer><bm-drivingv-if="bmDriving":start="driving.start":end="driving.end":panel="false":autoViewport="true"></bm-driving></baidu-map><!--  地图结束  --></div></div>
</template>

javascript:

<script>
import BaiduMap from "vue-baidu-map/components/map/Map.vue";
import BmScale from "vue-baidu-map/components/controls/Scale";
import BmNavigation from "vue-baidu-map/components/controls/Navigation";
import BmMarkerClusterer from "vue-baidu-map/components/extra/MarkerClusterer";
import BmInfoWindow from "vue-baidu-map/components/overlays/InfoWindow";
import BmMarker from "vue-baidu-map/components/overlays/Marker";
import BmTransit from "vue-baidu-map/components/search/Transit";
import BmDriving from "vue-baidu-map/components/search/Driving";
import {getDriverStatisticsInfoList,getDriverStatistics,getCompany,getBaidu,getDriverStatusList,getDriverStatus,getFindById
} from "@/api/valetDriverMonitoring";
import { findById, getCenterCompanyList } from "@/api/agentManagement";
import Global from "@/utils/Global";
export default {name: "orderMonitoring",components: {BaiduMap,BmScale,BmNavigation,BmMarkerClusterer,BmMarker,BmInfoWindow,BmTransit,BmDriving},watch: {},data() {return {isMobile: false,timeInfo: "",showInfo: 2,keyword: "百度",loading: false,//表单数据dataForm: {driverStatus: "1",driverType: "3", //业务类型companyId: "" //所属公司},entityNamesArr: [],freeEntityNamesArr: [],//总条目数total: 0,//列表数据dataList: [],/*百度地图对象*/BMap: {},baiduMap: {},//是否展示路线bmDriving: false,//路线的起始坐标和结束坐标driving: {start: { lng: 125.331468, lat: 43.918242 },end: { lng: 123.401243, lat: 41.801383 }},//地图标记点的图片markerIcon: {url: require("@/assets/car1.png"),size: { width: 42, height: 49 }},markerIcon1: {url: require("@/assets/car2.png"),size: { width: 40, height: 40 }},//地图参数map: {ak: Global.baiduAK, //百度地图的akzoom: 15, //地图显示比例尺的大小,必须定义,有1~19个级别scrollWheelZoom: true, //鼠标滚轮控制缩放mapClick: false, //禁止点击景点弹出信息窗体,自定义的除外center: ""},// 地图标记点数据markers: [],markers1: [],// 业务类型businessType: [{ value: "1", label: "城际" }],// 所属公司company: [],//城市city: [],summaryInformation: {orderInProgress: "",workingDriver: "",freeDriver: "",offLineDriverCpunt: ""},timer: null,oDiv: null,addrStr: "",driverStatusData: [{value: "1",label: "空闲中"},{value: "2",label: "行驶中"},{value: "0",label: "已下班",disabled: true},{value: "3",label: "离线",disabled: true}]};},mounted() {this.dataForm.companyId = JSON.parse(localStorage.getItem("userInfo")).companyId;// console.log(this.dataForm.companyId,'this.dataForm.companyId')this.getCompany(); //获取公司列表// this.getData();this.findByIdMsg();},created() {if (this._isMobile()) {// alert("手机端");this.isMobile = true;}this.timeInfo = parseInt(new Date().getTime() / 1000);console.log(this.timeInfo, "timeInfo");this.getBaidu();this.findByIdMsg();},methods: {_isMobile() {let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);return flag;},findByIdMsg() {getFindById({id: this.dataForm.companyId}).then(res => {console.log(res, "公司详情地点坐标");if (res.status == 200) {this.centerPointStr = res.data.centerPoint;this.lngStr = res.data.centerPoint.split(",")[0];this.latStr = res.data.centerPoint.split(",")[1];this.baiduMap.centerAndZoom(new BMap.Point(this.lngStr, this.latStr),15);}});},handleSeleUserId(scope) {console.log(scope, "scope");var params = {service_id: 230056,// coord_type_output: "bd09ll",// entity_name: scope.entityName, //司机姓名-司机id/this.entity_namefilter: `entity_names:${scope.entityName}|active_time:${this.timeInfo}`// process_option: "denoise_grade=1,need_mapmatch=1,transport_mode=driving"};console.log(params, "params");getBaidu({apiType: 2,methodType: 2,params: params,url: "/entity/list"}).then(res => {console.log(res.data.entities[0].latest_location,"百度获取鹰眼功能---------------");if (res.status == 200) {// let lng = res.data.latest_point.longitude;// let lat = res.data.latest_point.latitude;let lng = res.data.entities[0].latest_location.longitude;let lat = res.data.entities[0].latest_location.latitude;let json = {lng: lng,lat: lat,data: scope};let titleContent1 = `<span style="width:6px;height:6px;border-radius:50%;background-color:#FFFFFF;display:inline-block;margin-right:3px"></span><span style="width:6px;height:6px;border-radius:50%;background-color:#FFFFFF"></span><span style="color:#FFFFFF;">已下班</span><span>${json.data.driverName}</span><span>${json.data.phone}</span>`;let titleContent2 = `<span style="width:6px;height:6px;border-radius:50%;background-color:#FFFFFF;display:inline-block;margin-right:3px"></span><span style="color:#FFFFFF;">空闲中</span><span>${json.data.driverName}</span><span>${json.data.phone}</span>`;let titleContent3 = `<span style="width:6px;height:6px;border-radius:50%;background-color:#FFFFFF;display:inline-block;margin-right:3px"></span><span style="color:#FFFFFF;">行驶中</span><span>${json.data.driverName}</span><span>${json.data.phone}</span>`;let titleContent4 = `<span style="width:6px;height:6px;border-radius:50%;background-color:#FFFFFF;display:inline-block;margin-right:3px"></span><span style="color:#FFFFFF;">离线</span><span>${json.data.driverName}</span><span>${json.data.phone}</span>`;var getPoint = new BMap.Point(json.lng, json.lat); //label显示的位置console.log(getPoint, "getPoint");var opts = {position: getPoint, // 指定文本标注所在的地理位置offset: new BMap.Size(-75, -50) //设置文本偏移量};// 已下班 0 空闲中 1 行驶中 2  离线 3this.baiduMap.clearOverlays();if (scope.driverStatus == 0) {console.log("已下班", titleContent1, "111");var label = new BMap.Label(titleContent1, opts); // 创建文本标注对象label.setStyle({color: "#FFFFFF",fontSize: "12px",lineHeight: "20px",fontFamily: "微软雅黑",borderRadius: "6px",padding: "3px 8px",lineHeight: "20px",border: "none",boxShadow: "0px 0px 10px #ccc",background: "#3F9EFF"});this.baiduMap.addOverlay(label);this.markers.push(json);} else if (scope.driverStatus == 1) {console.log("空闲中", titleContent2, "----");var label = new BMap.Label(titleContent2, opts); // 创建文本标注对象label.setStyle({color: "#FFFFFF",fontSize: "12px",lineHeight: "20px",fontFamily: "微软雅黑",borderRadius: "6px",padding: "3px 8px",lineHeight: "20px",border: "none",boxShadow: "0px 0px 10px #ccc",background: "#0EA062"});this.baiduMap.addOverlay(label);this.markers.push(json);} else if (scope.driverStatus == 2) {console.log("行驶中");var label = new BMap.Label(titleContent3, opts); // 创建文本标注对象label.setStyle({color: "#FFFFFF",fontSize: "12px",lineHeight: "20px",fontFamily: "微软雅黑",borderRadius: "6px",padding: "3px 8px",lineHeight: "20px",border: "none",boxShadow: "0px 0px 10px #ccc",background: "#0EA062"});this.baiduMap.addOverlay(label);this.markers.push(json);} else if (scope.driverStatus == 3) {console.log("离线");var label = new BMap.Label(titleContent4, opts); // 创建文本标注对象label.setStyle({color: "#FFFFFF",fontSize: "12px",lineHeight: "20px",fontFamily: "微软雅黑",borderRadius: "6px",padding: "3px 8px",lineHeight: "20px",border: "none",boxShadow: "0px 0px 10px #ccc",background: "#77838F"});this.baiduMap.addOverlay(label);this.markers.push(json);}}let lng = res.data.entities[0].latest_location.longitude;let lat = res.data.entities[0].latest_location.latitude;var point = new BMap.Point(lng, lat);this.baiduMap.centerAndZoom(new BMap.Point(lng, lat), 20);});},/* 百度地图准备好了的回调函数 */mapReady({ BMap, map }) {console.log("mapReady");this.BMap = BMap; //BMapGLthis.baiduMap = map;//定位城市筛选// this.baiduMap.centerAndZoom(new BMapGL.Point(116.39742,39.909), 12);// this.baiduMap.centerAndZoom(new BMap.Point(this.lngStr, this.latStr), 10);console.log(this.BMap, this.baiduMap);this.$nextTick(() => {this.getList(); //显示获取到的订单列表});},//获取实时订单列表getList() {// this.loading = true;this.markers = [];this.markers1 = [];this.freeEntityNamesArr = [];this.entityNamesArr = [];this.bmDriving = false;this.baiduMap.clearOverlays();this.baiduMap.centerAndZoom(new BMap.Point(this.lngStr, this.latStr), 10);this.getDriverStatisticsInfoList();},getDriverStatisticsInfoList() {getDriverStatusList(this.dataForm).then(res => {if (res.status == 200) {console.log(res, "获取实时订单列表");this.dataList = res.data;this.total = res.data.total;this.summaryInformation.orderInProgress = res.data.total;// this.dataForm.pageIndex = res.data.current;// this.dataForm.pageSize = res.data.size;this.loading = false;this.getDriverStatistics(this.dataForm.companyId); //获取实时订单司机数量this.getEntityNamesArr(this.dataForm.companyId);this.getFreeEntityNamesArr(this.dataForm.companyId);}});},getEntityNamesArr(id) {this.entityNamesArr = [];getDriverStatisticsInfoList({driverStatus: "2",driverType: "3", //业务类型companyId: id //所属公司// pageIndex: 1,// pageSize: 10000}).then(res => {if (res.status == 200) {// console.log(res, "获取实时订单列表getEntityNamesArr");let dataList = res.data.records;for (let i = 0; i < dataList.length; i++) {this.entityNamesArr.push(this.dataList[i].entityName);}this.$nextTick(() => {this.getMarkers();});}});},getFreeEntityNamesArr(id) {this.freeEntityNamesArr = [];getDriverStatisticsInfoList({driverStatus: "1",driverType: "3", //业务类型companyId: id //所属公司}).then(res => {if (res.status == 200) {// console.log(res, "获取实时订单列表getFreeEntityNamesArr");let dataList = res.data.records;for (let i = 0; i < dataList.length; i++) {this.freeEntityNamesArr.push(this.dataList[i].entityName);}this.$nextTick(() => {this.getMarkers();});}});},//获取实时订单司机数量//司机监控数量统计getDriverStatistics(id) {getDriverStatus({companyId: id}).then(res => {// console.log(res, "获取实时订单司机数量//司机监控数量统计");if (res.status == 200) {this.summaryInformation = {workingDriverCount: res.data.workingDriverCount,freeDriverCount: res.data.freeDriverCount,unWorkDriverCount: res.data.unWorkDriverCount,offLineDriverCpunt: res.data.offLineDriverCpunt};}});},getBaidu(jsonD, str) {console.log(jsonD, str, 9099, jsonD.entity_name);var params = {service_id: 230056,coord_type_output: "bd09ll",filter: `entity_names:${jsonD.entity_name}|active_time:${this.timeInfo}`};getBaidu({apiType: 2,methodType: 2,params: params,url: "/entity/list"}).then(res => {console.log(res, "百度获取鹰眼功能--------------");if (res.status == 200) {let lng = res.data.latest_point.longitude;let lat = res.data.latest_point.latitude;let json = {lng: lng,lat: lat,data: jsonD.obj};console.log(json, "json");// console.log(json,'百度获取鹰眼功能');let titleContent1 = `<span style="color:#FFFFFF;">已下班</span><span>${jsonD.obj.driverName}</span><span>${jsonD.obj.phone}</span>`;let titleContent2 = `<span style="color:#FFFFFF;">空闲中</span><span>${jsonD.obj.driverName}</span><span>${jsonD.obj.phone}</span>`;let titleContent3 = `<span style="color:#FFFFFF;">行驶中</span><span>${jsonD.obj.driverName}</span><span>${jsonD.obj.phone}</span>`;let titleContent4 = `<span style="color:#FFFFFF;">离线</span><span>${jsonD.obj.driverName}</span><span>${jsonD.obj.phone}</span>`;var getPoint = new BMap.Point(json.lng, json.lat); //label显示的位置console.log(getPoint, "getPoint");var opts = {position: getPoint, // 指定文本标注所在的地理位置offset: new BMap.Size(-75, -50) //设置文本偏移量};if (str == "代驾") {var label = new BMap.Label(titleContent1, opts); // 创建文本标注对象label.setStyle({color: "#000",fontSize: "12px",lineHeight: "20px",fontFamily: "微软雅黑",borderRadius: "6px",padding: "3px 8px",lineHeight: "20px",border: "none",boxShadow: "0px 0px 10px #ccc"});this.baiduMap.addOverlay(label);this.markers.push(json);} else if (str == "空闲") {var label = new BMap.Label(titleContent2, opts); // 创建文本标注对象label.setStyle({color: "#000",fontSize: "12px",lineHeight: "20px",fontFamily: "微软雅黑",borderRadius: "6px",padding: "3px 8px",lineHeight: "20px",border: "none",boxShadow: "0px 0px 10px #ccc"});this.baiduMap.addOverlay(label);this.markers1.push(json);}}});},/*车辆位置 */getMarkers() {//代驾司机集合// let arr = [];// arr = this.entityNamesArrfor (let i = 0; i < this.entityNamesArr.length; i++) {this.getBaidu(this.entityNamesArr[i], "代驾");}//空闲司机集合for (let i = 0; i < this.freeEntityNamesArr.length; i++) {this.getBaidu(this.freeEntityNamesArr[i], "空闲");}// console.log(this.markers,'所有汽车的坐标经纬度');},//实时轨迹showtrajectory(row) {// console.log(row,'实时轨迹');//从row中获取订单的起始坐标和重点坐标this.driving = {start: { lng: row.startLongitude, lat: row.startLatitude },end: { lng: row.endLongitude, lat: row.endLatitude }};this.bmDriving = true;},
};
</script>

vue-baidu-map 百度地图(定位替换图标,添加标签)相关推荐

  1. vue项目调用百度地图定位,判断当前位置是否在目标位置范围内

    之前用vue做了一个百度地图定位功能,判断是否当前位置在目标位置范围内的小功能,类似这样: 直接上代码 百度地图定位,设置目标位置范围,判断当前位置到目标位置的距离,BDMap.vue <tem ...

  2. android百度地图定位自定义图标,百度地图SDK集成及根据坐标实现定位(android studio开发)...

    百度地图SDK集成及根据坐标实现定位(android studio开发) 百度地图SDK集成及根据坐标实现定位(android studio开发) 1.下载百度地图SDK 链接:http://lbsy ...

  3. Vue中用 Vue Baidu Map 绘制地图

    1.先贴上官网案例 https://dafrok.github.io/vue-baidu-map/#/zh/guide/painting 官网的东西,没有百度地图开放平台上面的东西齐全,考虑到vue ...

  4. android百度地图定位自定义图标,Android应用开发之android 百度地图自定义圆,更改默认图标等常用方法...

    本文将带你了解Android应用开发之android 百度地图自定义圆,更改默认图标等常用方法,希望本文对大家学Android有所帮助. 总结了一下百度地图常用的方法(前提是集成百度地图环境成功): ...

  5. 仿滴滴打车百度地图定位查找附近出租车或门店信息

    前端vue仿滴滴打车百度地图定位查找附近出租车或门店信息, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12982 喜欢我的前 ...

  6. Vue Baidu Map 实现Vue版本地图轨迹回放(App端)

    Vue Baidu Map 地图轨迹回放 Vue Baidu Map 简介 Vue Baidu Map 安装 1.NPM 2.CDN Vue Baidu Map 引用 BmlLushu 引用 BmlL ...

  7. vue cli3 百度地图定位

    一.index.html   引入js <script type="text/javascript" src="http://api.map.baidu.com/a ...

  8. baidumap vue 判断范围_vue百度地图 + 定位的详解

    vue 百度地图 + 定位 前提需要自己有百度的密钥,如没有可以去百度地图申请 一.在主目录下的index.html引入js,例如: 二.在webpack.base.conf.js配置文件中配置BMa ...

  9. vue 百度地图 + 定位

    vue 百度地图 + 定位 > 前提需要自己有百度的密钥,如没有可以去百度地图申请 一.在主目录下的index.html引入js,例如: 二.在webpack.base.conf.js配置文件中 ...

  10. vue集合离线百度地图

    vue集合离线百度地图 vue.js百度地图api离线 发布于 1月9日 一.需求场景 所谓离线,大概都是项目在内网中使用,无法连接外网,所以需要开发离线地图功能. 在看以下步骤前,先提示这个vue项 ...

最新文章

  1. ((void *) 0)的含义和void的一些细节
  2. 厉害了,淘宝千万并发,14 次架构演进…
  3. 按照这步骤来刷题,两个月你亦能成为王者
  4. oracle索引和同义词,关于Oracle序列、索引、同义词
  5. java jpa注解哪个包好,Spring Data JPA 中常用注解详解
  6. Request.Url.Port 获取不到正确的端口号
  7. java如何实现封装_java如何实现封装
  8. 存储世界瞬息万变 SSD掀行业浪潮
  9. CANN5.0黑科技解密 | 别眨眼,缩小隧道,让你的AI模型“身轻如燕”
  10. 团队任务3 每日立会
  11. 素MM 详解(C++)
  12. 软件构造 git 图形界面看Object Graph
  13. 出口美国的电动自行车UL2849测试和GCC检测标准
  14. 关于excle表格中日期时间筛选
  15. 汾阳哪里有计算机培训班,汾阳市2020年第六期 吕梁山护工培训班开班
  16. 去掉input记录密码时的背景颜色
  17. WPF 按钮动画效果制作
  18. Kafka 2.8.0 学习
  19. webService序列化xml 以及去掉删除string xmlns =“http://tempuri.org/”
  20. C++ Programming Basic acknowledge

热门文章

  1. Es6中Promise链式调用then方法
  2. python--字符串
  3. 二叉树的顺序存储和三种遍历(代码)
  4. 曾有一个人,爱我如生命(3)
  5. Unity 制造moba英雄联盟战争迷雾2
  6. 应用排行榜第一名脸萌仅仅是刹那的烟火
  7. HTTP之HEAD请求
  8. 流量分析和强制执行ntopng
  9. 卷积可视化网站---CNN初学者的神器
  10. 按一个按钮会随机死人_有一个按钮,按下你会获得一千万,但会随机死一个人,你不用因此负责,你会按吗?...