From ffc9f497ed62c2d0814dfdf64c80c2f8fd8a769f Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 17 Jun 2021 22:31:05 +0800
Subject: [PATCH] 1.警情点击当前位置时,地图定位到当前位置点 2.警情信息调整,样式修改,信息上下拉动bug修复

---
 xcxMapJQ/js/vueMain.js |  453 ++++++++++++++++++++++----------------------------------
 1 files changed, 177 insertions(+), 276 deletions(-)

diff --git a/xcxMapJQ/js/vueMain.js b/xcxMapJQ/js/vueMain.js
index baded5a..03c54ad 100644
--- a/xcxMapJQ/js/vueMain.js
+++ b/xcxMapJQ/js/vueMain.js
@@ -1,29 +1,25 @@
 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,
@@ -32,60 +28,42 @@
     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) {
@@ -98,14 +76,12 @@
                 } 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, //去掉右下角
@@ -113,12 +89,8 @@
                 });
                 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();
@@ -127,218 +99,151 @@
             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
@@ -361,9 +266,7 @@
                 });
                 newAxios
                     .post(
-                        "/api_control",
-                        {},
-                        {
+                        "/api_control", {}, {
                             params: {
                                 param: JSON.stringify({ PktType: "GetAccessToken" }),
                             },
@@ -387,67 +290,65 @@
         },
         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: {}
 })
\ No newline at end of file

--
Gitblit v1.9.3