From bf5ba56e8a82f0ef699f2eae413d0dc2c4e4f67d Mon Sep 17 00:00:00 2001
From: jxdnsong <592566207@qq.com>
Date: Tue, 25 Oct 2022 16:15:00 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/sd-jg-school-web into master

---
 src/store/modules/mobilePosition.js |  376 ++++++++---------------------------------------------
 1 files changed, 57 insertions(+), 319 deletions(-)

diff --git a/src/store/modules/mobilePosition.js b/src/store/modules/mobilePosition.js
index a6ebee9..c13d0cd 100644
--- a/src/store/modules/mobilePosition.js
+++ b/src/store/modules/mobilePosition.js
@@ -1,323 +1,61 @@
-import {
-  Message
-} from "element-ui";
-// import BMap from "./mobilePositionLID";
-import RemoGeoLocation from "./mobilePositionLID1";
+/*
+ * @Author: shuishen 1109946754@qq.com
+ * @Date: 2022-09-09 17:54:08
+ * @LastEditors: shuishen 1109946754@qq.com
+ * @LastEditTime: 2022-09-14 16:05:41
+ * @FilePath: \smart-campus\src\store\modules\mobilePosition.js
+ * @Description:
+ *
+ * Copyright (c) 2022 by shuishen 1109946754@qq.com, All Rights Reserved.
+ */
 
 const mobilePosition = {
-  state: {
-    getSPosition: null
-  },
-  mutations: {
-    GET_NOWPOSITION(state, val) {
-      let outData =
-        val ||
-        function (res) {
-          console.log(res);
-        };
-      let startTime = new Date().getTime(),
-        endTime;
-      console.log(startTime, "startTime");
-      let times = (dateBegin) => {
-        var dateDiff = new Date().getTime() - dateBegin; //时间差的毫秒数
-        var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000)); //计算出相差天数
-        var leave1 = dateDiff % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
-        var hours = Math.floor(leave1 / (3600 * 1000)); //计算出小时数
-        //计算相差分钟数
-        var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
-        var minutes = Math.floor(leave2 / (60 * 1000)); //计算相差分钟数
-        //计算相差秒数
-        var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
-        var seconds = Math.round(leave3 / 1000);
-        var leave4 = leave3 % (60 * 1000); //计算分钟数后剩余的毫秒数
-        var minseconds = Math.round(leave4 / 1000);
-        var timeFn =
-          "耗时:" +
-          dayDiff +
-          "天 " +
-          hours +
-          "小时 " +
-          minutes +
-          " 分钟" +
-          seconds +
-          " 秒" +
-          minseconds +
-          "毫秒";
-        console.log(timeFn);
-        return timeFn;
-      };
-      if (navigator.geolocation) {
-        // let success = function (position) {
-        //   console.log(position);
-        //   times(startTime);
-        //   var lat = position.coords.latitude;
-        //   var lon = position.coords.longitude;
-        //   console.log("成功返回经纬度信息");
-        //   // Message({
-        //   //   showClose: true,
-        //   //   message:
-        //   //     "成功返回经纬度信息(1)" +
-        //   //     lon +
-        //   //     "_" +
-        //   //     lat +
-        //   //     "--反应时间:" +
-        //   //     times(startTime),
-        //   //   type: "success",
-        //   //   duration: 0,
-        //   // });
-        //   console.log(lon, lat, "成功");
-        //   outData([lon, lat]);
-        // };
-        // let error = function (error) {
-        //   // console.log(error, "失败");
-        //   outData(["失败", "失败"]);
-        //   let msg = "none";
-        //   switch (error.code) {
-        //     case error.PERMISSION_DENIED:
-        //       msg = "User denied the request for Geolocation.";
-        //       break;
-        //     case error.POSITION_UNAVAILABLE:
-        //       msg = "Location information is unavailable.";
-        //       break;
-        //     case error.TIMEOUT:
-        //       msg = "The request to get user location timed out.";
-        //       break;
-        //     case error.UNKNOWN_ERROR:
-        //       msg = "An unknown error occurred.";
-        //       break;
-        //   }
-        //   // Message({
-        //   //   showClose: true,
-        //   //   message:
-        //   //     "定位获取失败-msg:" +
-        //   //     msg +
-        //   //     "------" +
-        //   //     error.message +
-        //   //     "--反应时间:" +
-        //   //     times(startTime),
-        //   //   type: "error",
-        //   //   duration: 0,
-        //   // });
-        //   Message({
-        //     showClose: true,
-        //     message: "未开启位置权限",
-        //     type: "error",
-        //     duration: 2000,
-        //   });
-        // };
-        // let options = {
-        //   enableHighAccuracy: true,
-        //   // timeout: 5000,
-        //   timeout: Infinity,
-        //   maximumAge: 0,
-        // };
-        // console.log(navigator);
-        // console.log(navigator.platform);
-        // Message({
-        //   showClose: true,
-        //   message: navigator.platform,
-        //   type: "error",
-        //   duration: 0,
-        // });
-        // console.log(CLLocationManager);
-        // return;
-        // if (navigator.platform === "iPhone") {
-        //   //iphone请求权限
-        //   // let remoGeo = new RemoGeoLocation();
-        //   // navigator.geolocation.getCurrentPosition = function () {
-        //   //   return remoGeo.getCurrentPosition.apply(remoGeo, arguments);
-        //   // };
-        //   // navigator.geolocation.watchPosition = function () {
-        //   //   return remoGeo.watchPosition.apply(remoGeo, arguments);
-        //   // };
-        //   // Message({
-        //   //   showClose: true,
-        //   //   message: "ipone",
-        //   //   type: "error",
-        //   //   duration: 0,
-        //   // });
-        //   // console.log(CLLocationManager);
-        //   // Message({
-        //   //   showClose: true,
-        //   //   message: CLLocationManager,
-        //   //   type: "error",
-        //   //   duration: 0,
-        //   // });
-        //   // return;
-        // }
-        // return
-        // console.log(BMap);
-        //百度定位
-        //       <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=zTNaMXHcfGsG0nFvwd6G72aMOo98uzH2">
-        // </script>
-        // var geolocation = new BMap.Geolocation();
-        // geolocation.getCurrentPosition(function (r) {
-        //   if (this.getStatus() == BMAP_STATUS_SUCCESS) {
-        //     // var mk = new BMap.Marker(r.point);
-        //     // map.addOverlay(mk);
-        //     // map.panTo(r.point);
-        //     console.log("您的位置:" + r.point.lng + "," + r.point.lat);
-        //     outData([r.point.lng, r.point.lat]);
-        //     Message({
-        //       showClose: true,
-        //       message:
-        //         "成功返回经纬度信息" +
-        //         r.point.lng +
-        //         "_" +
-        //         r.point.lat +
-        //         "--反应时间:" +
-        //         times(startTime),
-        //       type: "success",
-        //       duration: 0,
-        //     });
-        //   } else {
-        //     console.log("failed" + this.getStatus());
-        //     Message({
-        //       showClose: true,
-        //       message:
-        //         "定位获取失败-msg:" +
-        //         "failed" +
-        //         this.getStatus() +
-        //         "------" +
-        //         "--反应时间:" +
-        //         times(startTime),
-        //       type: "error",
-        //       duration: 0,
-        //     });
-        //   }
-        // });
-
-        // return;
-        // //高德定位
-        // AMap.plugin("AMap.Geolocation", function () {
-        //   var geolocation = new AMap.Geolocation({
-        //     // 是否使用高精度定位,默认:true
-        //     enableHighAccuracy: true,
-        //     // 设置定位超时时间,默认:无穷大
-        //     // timeout: 10000,
-        //     // 定位按钮的停靠位置的偏移量,默认:Pixel(10, 20)
-        //     // buttonOffset: new AMap.Pixel(10, 20),
-        //     //  定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
-        //     // zoomToAccuracy: true,
-        //     //  定位按钮的排放位置,  RB表示右下
-        //     // buttonPosition: "RB",
-        //   });
-        //   geolocation.getCurrentPosition();
-        //   AMap.event.addListener(geolocation, "complete", onComplete);
-        //   AMap.event.addListener(geolocation, "error", onError);
-
-        //   function onComplete(data) {
-        //     // data是具体的定位信息
-        //     console.log(data);
-        //     var lat = data.position.lat;
-        //     var lon = data.position.lng;
-        //     console.log("成功返回经纬度信息");
-        //     Message({
-        //       showClose: true,
-        //       message: "成功返回经纬度信息" +
-        //         lon +
-        //         "_" +
-        //         lat +
-        //         "--反应时间:" +
-        //         times(startTime),
-        //       type: "success",
-        //       duration: 0,
-        //     });
-        //     console.log(lon, lat, "成功");
-        //     outData([lon, lat]);
-        //   }
-
-        //   function onError(data) {
-        //     // 定位出错
-        //     console.log(data);
-        //     Message({
-        //       showClose: true,
-        //       message: "定位获取失败-msg:" +
-        //         data.message +
-        //         "------" +
-        //         "--反应时间:" +
-        //         times(startTime),
-        //       type: "error",
-        //       duration: 0,
-        //     });
-        //   }
-        // });
-        window.AMap.plugin('AMap.Geolocation', function () {
-          var geolocation = new AMap.Geolocation({
-            enableHighAccuracy: true, //是否使用高精度定位,默认:true
-            // timeout: 10000, //超过10秒后停止定位,默认:5s
-            // buttonPosition: 'RB', //定位按钮的停靠位置
-            // buttonOffset: new AMap.Pixel(10, 20), //定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
-            // zoomToAccuracy: true, //定位成功后是否自动调整地图视野到定位点
-
-          });
-          // map.addControl(geolocation);
-          geolocation.getCurrentPosition(function (status, result) {
-            if (status == 'complete') {
-              onComplete(result)
-            } else {
-              onError(result)
-            }
-          });
-        });
-        //解析定位结果
-        function onComplete(data) {
-          // let lngLat = [data.position.lng, data.position.lat]
-          // console.log(position);
-          // times(startTime);
-          var lat = data.position.lat;
-          var lon = data.position.lng;
-          // console.log("成功返回经纬度信息");
-          // Message({
-          //   showClose: true,
-          //   message: "成功返回经纬度信息(1)" +
-          //     lon +
-          //     "_" +
-          //     lat +
-          //     "--反应时间:" +
-          //     times(startTime),
-          //   type: "success",
-          //   duration: 2000,
-          // });
-          console.log(lon, lat, "成功");
-          outData([lon, lat]);
-        }
-        //解析定位错误信息
-        function onError(data) {
-          // console.log(data, "see")
-          Message({
-            showClose: true,
-            message: "未开启位置权限",
-            type: "error",
-            duration: 2000,
-          });
-        }
-
-        return;
-        state.getSPosition = navigator.geolocation.getCurrentPosition(
-          success,
-          error,
-          options
-        );
-      } else {
-        console.log("不支持navigator.geolocation");
-        Message({
-          showClose: true,
-          message: "不支持定位",
-          type: "warning",
-          duration: 0,
-        });
-        return "不支持navigator.geolocation";
-      }
+    state: {
+        getSPosition: null
     },
-    CLOSE_NOWPOSITION(state) {
-      // if (state.getSPosition && navigator.geolocation) {
-      //   navigator.geolocation.clearWatch(state.getSPosition);
-      //   state.getSPosition = null;
-      // }
-    },
-  },
-  actions: {},
-};
+    mutations: {
+        GET_NOWPOSITION (state, val) {
+            var outData =
+                val ||
+                function (res) {
+                    console.log(res)
+                }
 
-export default mobilePosition;
\ No newline at end of file
+            console.log(state, 222)
+
+            global.Geolocation.getLocation(function success (result) {
+                const position = global.DC.CoordTransform.GCJ02ToWGS84(result.lng, result.lat)
+
+                if (position[0] > 115.78815057 && position[0] < 115.80346610 && position[1] > 28.63771847 && position[1] < 28.64981682) {
+                    outData([position[0], position[1]])
+                } else {
+                    Message({
+                        message: '您当前位置超出学校范围',
+                        type: 'warning',
+                        duration: 2000
+                    })
+
+                    outData(['失败'])
+                }
+            }, function error (result) {
+                if (result.code == 1) {
+                    confirm('您拒绝了定位功能')
+                } else if (result.code == 3 || result.code == 5) {
+                    confirm('请求超时')
+                }
+            }, {
+                timeout: 8000, // 默认值为10s;
+                failTipFlag: true
+            })
+        },
+        CLOSE_NOWPOSITION (state) {
+            // if (state.getSPosition && navigator.geolocation) {
+            //   navigator.geolocation.clearWatch(state.getSPosition);
+            //   state.getSPosition = null;
+            // }
+        }
+    },
+    actions: {}
+}
+
+export default mobilePosition

--
Gitblit v1.9.3