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