| | |
| | | var me = new Vue({ |
| | | el: '#mapVue', |
| | | data: { |
| | | map: null,//map |
| | | map: null, //map |
| | | getdata: null, |
| | | marker: null, |
| | | layuiLayer: null, |
| | | nowIndex: null, |
| | | |
| | | LXdhStart: null, |
| | | LXdhEnd: null, |
| | | LxdhLine: null, |
| | | |
| | | LXdhStart: null, |
| | | LXdhEnd: null, |
| | | LxdhLine: null, |
| | | |
| | | activeName: 'first', |
| | | |
| | | move: null,//存放移动实例 |
| | | |
| | | //存放实时坐标 |
| | | lat: "", |
| | | lng: "", |
| | | |
| | | move: null, //存放移动实例 |
| | | |
| | | //存放实时坐标 |
| | | lat: "", |
| | | lng: "", |
| | | seedata: '', |
| | | |
| | | nowPosition: '', |
| | | |
| | | shipingPopupShow: false, |
| | | shipingM3u8Url: '', |
| | | resultFeedbackPopupShow: false, |
| | |
| | | methods: { |
| | | getDataList() { |
| | | var that = this; |
| | | // var url = 'https://web.byisf.com/api/blade-jfpts/equipment/equipment/listAll'; |
| | | // axios.get(url).then((res) => { |
| | | // that.getdata = res.data.data; |
| | | // console.log(that.getdata) |
| | | that.beginCome(); |
| | | // }) |
| | | that.beginCome(); |
| | | }, |
| | | beginCome() { |
| | | var data = [{ |
| | | "id": '100000', |
| | | "place": '无数据', |
| | | "state": '0', |
| | | "dtype": '0', |
| | | "size": '300', |
| | | "jd": "115.822311", |
| | | "wd": "28.646341" |
| | | }] |
| | | this.getdata = this.getQueryVariable('data') || data;//url解码 |
| | | console.log(this.getdata) |
| | | // this.getdata = [{ |
| | | // jd: 115.91042800000002, |
| | | // wd: 28.68094757898212, |
| | | // state: 0, |
| | | // dtype: 0, |
| | | // size: 300, |
| | | // title: '第一个' |
| | | // }];//url解码 |
| | | this.map = this.beginMap(this.map, this.getdata);//创建并接受map |
| | | "id": '100000', |
| | | "place": '无数据', |
| | | "state": '0', |
| | | "dtype": '0', |
| | | "size": '300', |
| | | "jd": "115.822311", |
| | | "wd": "28.646341" |
| | | }] |
| | | //url解码 |
| | | this.getdata = this.getQueryVariable('data') || data; |
| | | this.map = this.beginMap(this.map, this.getdata); //创建并接受map |
| | | this.move = new myDomMove('#seedata', '.title', '#map'); |
| | | // var dy = document.documentElement.clientHeight - 50; |
| | | // $('#seedata').animate({ top: dy + "px" }, 10); |
| | | // $('#map').css("height", (index, value) => {//改变地图高度 |
| | | // return '100%'; |
| | | // // }) |
| | | this.map.invalidateSize(true);//应用地图高度 |
| | | this.map.invalidateSize(true); //应用地图高度 |
| | | this.move.followFinger(this.map, 'down'); |
| | | }, |
| | | //url解码 |
| | | getQueryVariable(variable) { |
| | | var query = window.location.search.substring(1); |
| | | var vars = query.split("&"); |
| | | for (var i = 0; i < vars.length; i++) { |
| | | var pair = vars[i].split("="); |
| | | if (pair[0] == variable) { return JSON.parse(decodeURI(pair[1])); }//解码url 和 JSON |
| | | if (pair[0] == variable) { return JSON.parse(decodeURI(pair[1])); } //解码url 和 JSON |
| | | } |
| | | return (false); |
| | | }, |
| | | beginMap(map, data) { |
| | | var that = this, |
| | | center = [data[0].wd, data[0].jd], |
| | | url = `/api/blade-jfpts/alarm/alarm/APP-getAlarm?id=${data[0].id}`; |
| | | // console.log(center) |
| | | url = `http://s16s652780.51mypc.cn/api/blade-jfpts/alarm/alarm/APP-getAlarm?id=${data[0].id}`; |
| | | // url = `http://localhost:89/alarm/alarm/APP-getAlarm?id=${data[0].id}`; |
| | | this.nowPosition = center; |
| | | axios.post(url).then((res) => { |
| | | // console.log(res) |
| | | if (res.data.data.length != 0) { |
| | | var dat = res.data.data[0]; |
| | | for (var key in dat) { |
| | |
| | | } else { |
| | | this.seedata = data[0]; |
| | | } |
| | | // console.log(this.seedata, 1524545453) |
| | | }) |
| | | |
| | | |
| | | var createMap = () => { |
| | | map = L.map('map', { //初始化地图 |
| | | center: center, |
| | | zoom: 12, |
| | | zoom: 20, |
| | | minZoom: 2, |
| | | maxZoom: 17, |
| | | attributionControl: false, //去掉右下角 |
| | |
| | | }); |
| | | L.tileLayer( //添加切片图层 |
| | | // "https://webmap-tile.sf-express.com/MapTileService/rt?x={x}&y={y}&z={z}", {//顺丰地图 |
| | | "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal", {//顺丰地图 |
| | | // "http://webrd0{s}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}", { |
| | | |
| | | // subdomains: ["1", "2", "3", "4"], |
| | | // attribution: "高德" |
| | | } |
| | | "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal", { //顺丰地图 |
| | | } |
| | | ).addTo(map); |
| | | } |
| | | createMap(); |
| | |
| | | var transportIcon = L.Icon.extend({ //图标初始化 |
| | | options: { |
| | | iconSize: [30, 30], // 图标尺寸 |
| | | // iconAnchor: [30, 30], // 图标偏移量 |
| | | // popupAnchor: [-20, -20] // 弹出框偏移量 |
| | | } |
| | | }); |
| | | var carIcon = new transportIcon({ //引入图标 |
| | | iconUrl: './img/gray.png' |
| | | }), |
| | | iconUrl: './img/gray.png' |
| | | }), |
| | | planeIcon = new transportIcon({ |
| | | iconUrl: './img/green.png' |
| | | }), |
| | | busIcon = new transportIcon({ |
| | | iconUrl: './img/red.png' |
| | | }); |
| | | // console.log(data, 43545343) |
| | | var setData = (a) => {//定义图标 |
| | | var setData = (a) => { //定义图标 |
| | | marker = L.marker([a.wd, a.jd], { |
| | | icon: planeIcon, |
| | | icon: planeIcon, |
| | | // icon: a.dtype == 0 ? carIcon : a.dtype == 1 ? planeIcon : a.dtype == 2 ? busIcon : '', |
| | | // title: title, |
| | | myData: {//自定义数据 |
| | | myData: { //自定义数据 |
| | | ...a |
| | | } |
| | | }); |
| | | } |
| | | for (var i = 0; i < data.length; i++) { |
| | | var a = data[i]; |
| | | // var title = a.title; |
| | | // if (a.dtype == 0) { |
| | | // setData(a); |
| | | // } else if (a.dtype == 1) { |
| | | // setData(a); |
| | | // } else if (a.dtype == 2) { |
| | | // setData(a); |
| | | // } |
| | | if (a.jd == '' || a.wd == '') { |
| | | console.log('没有坐标', i) |
| | | } else { |
| | | setData(a); |
| | | that.getDHLine(a.jd,a.wd); |
| | | that.getDHLine(a.jd, a.wd); |
| | | } |
| | | // marker.bindPopup(title); |
| | | markers.addLayer(marker); |
| | | } |
| | | map.addLayer(markers); |
| | | |
| | | markers.on('click', function (a) { |
| | | markers.on('click', function(a) { |
| | | // that.drawer = true; |
| | | that.seedata = a.layer.options.myData; |
| | | that.nowPosition = [that.seedata.wd,that.seedata.jd] |
| | | console.log(that.seedata) |
| | | that.nowPosition = [that.seedata.wd, that.seedata.jd] |
| | | $('#seedata').css('top', ''); |
| | | $('#map').css("height", (index, value) => {//改变地图高度 |
| | | $('#map').css("height", (index, value) => { //改变地图高度 |
| | | return '50%'; |
| | | }) |
| | | map.invalidateSize(true);//应用地图高度 |
| | | // console.log(a.layer.options.myData); |
| | | map.invalidateSize(true); //应用地图高度 |
| | | that.move.destruction(); |
| | | that.move.followFinger(map, 'down'); |
| | | |
| | | }); |
| | | // that.seedata = data[0]; |
| | | this.nowPosition = center; |
| | | // map.on('mousemove', (e) => {//实时显示坐标 |
| | | // let latlng = e.latlng; |
| | | // console.log(latlng);// {lat: 30.59, lng: 114.32} |
| | | // }); |
| | | return map;//抛出map |
| | | return map; //抛出map |
| | | }, |
| | | getDHLine(x, y) { |
| | | |
| | | var that = this; |
| | | |
| | | //获取导航信息 |
| | | axios({ |
| | | method: "get", |
| | | url: `https://web.byisf.com/sf/rp/v2/api`, |
| | | params: { |
| | | ak: "1986afc8a5744263971b7f2482253dfc", |
| | | x1: that.lng, |
| | | y1: that.lat, |
| | | x2: x, |
| | | y2: y, |
| | | type: "1", |
| | | strategy: "0", |
| | | opt: "sf2" |
| | | }, |
| | | }).then((res) => { |
| | | var resdata = res.data.result.coords; |
| | | var data = []; |
| | | for (var i = 0; i < resdata.length; i++) { |
| | | var xy = []; |
| | | xy.push(resdata[i][1]); |
| | | xy.push(resdata[i][0]); |
| | | data.push(xy); |
| | | } |
| | | |
| | | if (that.LXdhEnd != null) { |
| | | that.map.removeLayer(that.LXdhEnd); |
| | | } |
| | | if (that.LxdhLine != null) { |
| | | that.map.removeLayer(that.LxdhLine); |
| | | } |
| | | |
| | | //绘制起点和终点 |
| | | that.LXdhEnd = L.markerClusterGroup(); |
| | | |
| | | var transportIcon = L.Icon.extend({ //图标初始化 |
| | | options: { |
| | | iconSize: [56, 32], // 图标尺寸 |
| | | } |
| | | }); |
| | | |
| | | var zd = new transportIcon({ |
| | | iconUrl: './img/zd.png' |
| | | }); |
| | | // var qd = new transportIcon({ |
| | | // iconUrl: './img/qd.png' |
| | | // }); |
| | | |
| | | var qdzb = res.data.result.query; |
| | | |
| | | var x = resdata[resdata.length - 1][0]; |
| | | var y = resdata[resdata.length - 1][1]; |
| | | |
| | | that.LXdhEnd.addLayer(L.marker([y, x], { |
| | | icon: zd, |
| | | })); |
| | | // markers.addLayer(L.marker([qdzb.start.y, qdzb.start.x], { |
| | | // icon: qd, |
| | | // })); |
| | | |
| | | that.map.addLayer(that.LXdhEnd); |
| | | |
| | | that.showPolyLine(data); |
| | | }); |
| | | }, |
| | | showPolyLine(xy) { |
| | | var that = this; |
| | | that.LxdhLine = L.polyline(xy, { |
| | | color: 'red' |
| | | }).addTo(that.map); |
| | | |
| | | // zoom the map to the polyline |
| | | that.map.fitBounds(that.LxdhLine.getBounds()) |
| | | }, |
| | | getLocation() { |
| | | // if (navigator.geolocation) { |
| | | // // console.log(navigator.geolocation) |
| | | // navigator.geolocation.getCurrentPosition(onSuccess, onError); |
| | | |
| | | // } else { |
| | | // alert("您的浏览器不支持使用HTML 5来获取地理位置服务"); |
| | | // } |
| | | getDHLine(x, y) { |
| | | |
| | | // function onSuccess(position) { |
| | | // console.log('纬度: ' + position.coords.latitude + '\n' + |
| | | // '经度: ' + position.coords.longitude + '\n' + |
| | | // '海拔: ' + position.coords.altitude + '\n' + |
| | | // '水平精度: ' + position.coords.accuracy + '\n' + |
| | | // '垂直精度: ' + position.coords.altitudeAccura) |
| | | // } |
| | | // function onError(error) { |
| | | // switch (error.code) { |
| | | // case error.PERMISSION_DENIED: |
| | | // alert("您拒绝对获取地理位置的请求"); |
| | | // break; |
| | | // case error.POSITION_UNAVAILABLE: |
| | | // alert("位置信息是不可用的"); |
| | | // break; |
| | | // case error.TIMEOUT: |
| | | // alert("请求您的地理位置超时"); |
| | | // break; |
| | | // case error.UNKNOWN_ERROR: |
| | | // alert("未知错误"); |
| | | // break; |
| | | // } |
| | | // } |
| | | // this.map.locate({ |
| | | // setView: true, |
| | | // maxZoom: 16 |
| | | // }); |
| | | // console.log(this.map) |
| | | // this.map.on('locationfound', function (e) { |
| | | // // var radius = e.accuracy / 2; |
| | | // // L.marker(e.latlng).addTo(mapid).bindPopup("你就在这个圈内"); |
| | | // // L.circle(e.latlng, radius).addTo(mapid); |
| | | // console.log(e) |
| | | // }); |
| | | var that = this; |
| | | |
| | | //获取导航信息 |
| | | axios({ |
| | | method: "get", |
| | | url: `https://web.byisf.com/sf/rp/v2/api`, |
| | | params: { |
| | | ak: "1986afc8a5744263971b7f2482253dfc", |
| | | x1: that.lng, |
| | | y1: that.lat, |
| | | x2: x, |
| | | y2: y, |
| | | type: "1", |
| | | strategy: "0", |
| | | opt: "sf2" |
| | | }, |
| | | }).then((res) => { |
| | | var resdata = res.data.result.coords; |
| | | var data = []; |
| | | for (var i = 0; i < resdata.length; i++) { |
| | | var xy = []; |
| | | xy.push(resdata[i][1]); |
| | | xy.push(resdata[i][0]); |
| | | data.push(xy); |
| | | } |
| | | |
| | | if (that.LXdhEnd != null) { |
| | | that.map.removeLayer(that.LXdhEnd); |
| | | } |
| | | if (that.LxdhLine != null) { |
| | | that.map.removeLayer(that.LxdhLine); |
| | | } |
| | | |
| | | //绘制起点和终点 |
| | | that.LXdhEnd = L.markerClusterGroup(); |
| | | |
| | | var transportIcon = L.Icon.extend({ //图标初始化 |
| | | options: { |
| | | iconSize: [56, 32], // 图标尺寸 |
| | | } |
| | | }); |
| | | |
| | | var zd = new transportIcon({ |
| | | iconUrl: './img/zd.png' |
| | | }); |
| | | // var qd = new transportIcon({ |
| | | // iconUrl: './img/qd.png' |
| | | // }); |
| | | |
| | | var qdzb = res.data.result.query; |
| | | |
| | | var x = resdata[resdata.length - 1][0]; |
| | | var y = resdata[resdata.length - 1][1]; |
| | | |
| | | that.LXdhEnd.addLayer(L.marker([y, x], { |
| | | icon: zd, |
| | | })); |
| | | // markers.addLayer(L.marker([qdzb.start.y, qdzb.start.x], { |
| | | // icon: qd, |
| | | // })); |
| | | |
| | | that.map.addLayer(that.LXdhEnd); |
| | | |
| | | that.showPolyLine(data); |
| | | }); |
| | | }, |
| | | handleClick(tab, event) { |
| | | // console.log(tab, event); |
| | | showPolyLine(xy) { |
| | | var that = this; |
| | | that.LxdhLine = L.polyline(xy, { |
| | | color: 'red' |
| | | }).addTo(that.map); |
| | | |
| | | // zoom the map to the polyline |
| | | that.map.fitBounds(that.LxdhLine.getBounds()) |
| | | }, |
| | | titleClick(){ |
| | | this.map.setView(this.nowPosition, 12); |
| | | //定位警情位置 |
| | | titleClick() { |
| | | this.map.setView(this.nowPosition, 20); |
| | | }, |
| | | locationMap() {//定位 |
| | | // this.map.setView(this.nowPosition, 12);//定警情位置 |
| | | // this.getLocation(); |
| | | // console.log(wx,12); |
| | | // wx.miniProgram.navigateTo({url: 'pages/workbench/workbench'}) |
| | | //定位当前位置 |
| | | locationMap() { |
| | | this.map.setView([this.lat, this.lng], 20); |
| | | }, |
| | | shipingClick(open) {//打开视频 |
| | | shipingClick(open) { //打开视频 |
| | | if (open) { |
| | | this.openRealVideoBox(this.seedata.serialNumber, this.seedata.channelNumber, this.seedata.deviceNumber, this.seedata.manufacturer); |
| | | } else { |
| | | this.shipingPopupShow = false; |
| | | } |
| | | }, |
| | | resultFeedbackClick() {//结果反馈跳转小程序 |
| | | resultFeedbackClick() { //结果反馈跳转小程序 |
| | | this.gotoxcx('policeDetails'); |
| | | }, |
| | | openRealVideoBox(serialNumber, channelNumber, deviceNumber, manufacturer) {//获取视频地址 |
| | | openRealVideoBox(serialNumber, channelNumber, deviceNumber, manufacturer) { //获取视频地址 |
| | | var that = this; |
| | | if (manufacturer == "HK") { |
| | | axios |
| | |
| | | }); |
| | | newAxios |
| | | .post( |
| | | "/api_control", |
| | | {}, |
| | | { |
| | | "/api_control", {}, { |
| | | params: { |
| | | param: JSON.stringify({ PktType: "GetAccessToken" }), |
| | | }, |
| | |
| | | }, |
| | | gotoxcx(routs) { |
| | | wx.miniProgram.navigateTo({ |
| | | url: `../poput/workbench/policeDetails/${routs}?id=${this.seedata.id}`, //指定跳转至小程序页面的门路 |
| | | success: function () { |
| | | console.log('success'); //页面跳转胜利的回调函数 |
| | | url: `../poput/workbench/policeDetails/${routs}?id=${this.seedata.id}`, //指定跳转至小程序页面的门路 |
| | | success: function() { |
| | | console.log('success'); //页面跳转胜利的回调函数 |
| | | } |
| | | }); |
| | | }, |
| | | getLocationData() { |
| | | var that = this; |
| | | var geolocation = new qq.maps.Geolocation("T7RBZ-62U3X-RSQ4P-ZZVCB-WE7JT-HRBOG", "mapqq"); |
| | | var positionNum = 0; |
| | | var options = { |
| | | timeout: 8000 |
| | | }; |
| | | |
| | | function showPosition(position) { |
| | | var adCode = position.adCode; //邮政编码 |
| | | var nation = position.nation; //中国 |
| | | var city = position.city; //城市 |
| | | var addr = position.addr; //详细地址 |
| | | that.lat = position.lat; // |
| | | that.lng = position.lng; //火星坐标 //TODO 实现业务代码逻辑 |
| | | |
| | | if (that.LXdhStart != null) { |
| | | that.map.removeLayer(that.LXdhStart); |
| | | } |
| | | |
| | | //绘制起点和终点 |
| | | that.LXdhStart = L.markerClusterGroup(); |
| | | |
| | | var transportIcon = L.Icon.extend({ //图标初始化 |
| | | options: { |
| | | iconSize: [50, 50], // 图标尺寸 |
| | | } |
| | | }); |
| | | |
| | | var qd = new transportIcon({ |
| | | iconUrl: './img/dingw.gif' |
| | | }); |
| | | |
| | | that.LXdhStart.addLayer(L.marker([that.lat, that.lng], { |
| | | icon: qd, |
| | | })); |
| | | |
| | | that.map.addLayer(that.LXdhStart); |
| | | |
| | | }; |
| | | |
| | | function showErr() { |
| | | //TODO 如果出错了调用此方法 |
| | | }; |
| | | |
| | | geolocation.getLocation(showPosition, showErr, options); |
| | | }, |
| | | getLocationData() { |
| | | var that = this; |
| | | var geolocation = new qq.maps.Geolocation("T7RBZ-62U3X-RSQ4P-ZZVCB-WE7JT-HRBOG", "mapqq"); |
| | | var positionNum = 0; |
| | | var options = { |
| | | timeout: 8000 |
| | | }; |
| | | |
| | | function showPosition(position) { |
| | | var adCode = position.adCode; //邮政编码 |
| | | var nation = position.nation; //中国 |
| | | var city = position.city; //城市 |
| | | var addr = position.addr; //详细地址 |
| | | that.lat = position.lat; // |
| | | that.lng = position.lng; //火星坐标 //TODO 实现业务代码逻辑 |
| | | |
| | | if (that.LXdhStart != null) { |
| | | that.map.removeLayer(that.LXdhStart); |
| | | } |
| | | |
| | | //绘制起点和终点 |
| | | that.LXdhStart = L.markerClusterGroup(); |
| | | |
| | | var transportIcon = L.Icon.extend({ //图标初始化 |
| | | options: { |
| | | iconSize: [50, 50], // 图标尺寸 |
| | | } |
| | | }); |
| | | |
| | | var qd = new transportIcon({ |
| | | iconUrl: './img/dingw.gif' |
| | | }); |
| | | |
| | | that.LXdhStart.addLayer(L.marker([that.lat, that.lng], { |
| | | icon: qd, |
| | | })); |
| | | |
| | | that.map.addLayer(that.LXdhStart); |
| | | |
| | | }; |
| | | |
| | | function showErr() { |
| | | //TODO 如果出错了调用此方法 |
| | | }; |
| | | |
| | | geolocation.getLocation(showPosition, showErr, options); |
| | | }, |
| | | |
| | | }, |
| | | created() { |
| | | }, |
| | | created() {}, |
| | | mounted() { |
| | | this.getDataList(); |
| | | this.getLocationData(); |
| | | this.getLocationData(); |
| | | }, |
| | | wacth: { |
| | | } |
| | | wacth: {} |
| | | }) |