From cfa95f03007b221f1e00f4bf5cd29c3ccea3a0a7 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 09 Feb 2022 10:26:00 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/school-web

---
 src/store/modules/mobilePosition.js |  263 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 248 insertions(+), 15 deletions(-)

diff --git a/src/store/modules/mobilePosition.js b/src/store/modules/mobilePosition.js
index e9045bf..992e0bf 100644
--- a/src/store/modules/mobilePosition.js
+++ b/src/store/modules/mobilePosition.js
@@ -1,3 +1,7 @@
+import { Message } from "element-ui";
+// import BMap from "./mobilePositionLID";
+import RemoGeoLocation from "./mobilePositionLID1";
+
 const mobilePosition = {
   state: { getSPosition: null },
   mutations: {
@@ -7,29 +11,258 @@
         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) {
-        console.log("支持navigator.geolocation-111111111111111");
-        try {
-          state.getSPosition = navigator.geolocation.getCurrentPosition(
-            function (position) {
-              console.log(position);
-              var lat = position.coords.latitude;
-              var lon = position.coords.longitude;
-              console.log("成功返回经纬度信息");
-              console.log(lon, lat);
-              outData([lon, lat]);
-            }
-          );
-        } catch {
-          console.log("支持navigator.geolocation-需要HTTPS");
+        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,
+        //     });
+        //   }
+        // });
+
+        // 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";
       }
     },
     CLOSE_NOWPOSITION(state) {
-      state.getSPosition = null;
+      // if (state.getSPosition && navigator.geolocation) {
+      //   navigator.geolocation.clearWatch(state.getSPosition);
+      //   state.getSPosition = null;
+      // }
     },
   },
   actions: {},

--
Gitblit v1.9.3