import { Message } from 'element-ui'
|
// import BMap from "./mobilePositionLID";
|
import RemoGeoLocation from './mobilePositionLID1'
|
|
const mobilePosition = {
|
state: { getSPosition: null },
|
mutations: {
|
GET_NOWPOSITION (state, val) {
|
const outData =
|
val ||
|
function (res) {
|
console.log(res)
|
}
|
const startTime = new Date().getTime()
|
let endTime
|
console.log(startTime, 'startTime')
|
const 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) {
|
const success = function (position) {
|
console.log(position)
|
times(startTime)
|
var lat = position.coords.latitude
|
var lon = position.coords.longitude
|
console.log('成功返回经纬度信息')
|
Message({
|
showClose: true,
|
message:
|
'成功返回经纬度信息' +
|
lon +
|
'_' +
|
lat +
|
'--反应时间:' +
|
times(startTime),
|
type: 'success',
|
duration: 0
|
})
|
console.log(lon, lat, '成功')
|
outData([lon, lat])
|
}
|
const 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
|
})
|
}
|
const options = {
|
enableHighAccuracy: true,
|
// timeout: 5000,
|
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;
|
}
|
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) {
|
// if (state.getSPosition && navigator.geolocation) {
|
// navigator.geolocation.clearWatch(state.getSPosition);
|
// state.getSPosition = null;
|
// }
|
}
|
},
|
actions: {}
|
}
|
|
export default mobilePosition
|