| | |
| | | import { Message } from "element-ui"; |
| | | // import BMap from "./mobilePositionLID"; |
| | | import RemoGeoLocation from "./mobilePositionLID1"; |
| | | |
| | | const mobilePosition = { |
| | | state: { getSPosition: null }, |
| | | mutations: { |
| | |
| | | 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: {}, |