/*
|
* @Author: shuishen 1109946754@qq.com
|
* @Date: 2022-09-09 17:54:08
|
* @LastEditors: shuishen 1109946754@qq.com
|
* @LastEditTime: 2023-12-07 18:11:59
|
* @FilePath: \sd-jg-school-web-ksd\src\store\modules\mobilePosition.js
|
* @Description:
|
*
|
* Copyright (c) 2022 by shuishen 1109946754@qq.com, All Rights Reserved.
|
*/
|
|
let extent = [
|
{
|
key: 1,
|
xMin: 112.51303616638316,
|
yMin: -0.103420786429659,
|
xMax: 112.67880038471827,
|
yMax: 0.000004508906477476281,
|
|
x: (x, y) => {
|
return -250.6503 + 2.0389 * x + 4.4338 * y;
|
},
|
|
x: (x, y) => {
|
return 228.1454 - 2.321 * x + 1.4165 * y;
|
},
|
},
|
|
{
|
key: 2,
|
xMin: 112.51302551881798,
|
yMin: -0.16235359398493399,
|
xMax: 112.72742295590702,
|
yMax: 0.000004509195932360471,
|
|
x: (x, y) => {
|
return -802.9905 + 6.1504 * x + 7.0694 * y;
|
},
|
|
x: (x, y) => {
|
return 295.4321 - 3.4878 * x + 3.775 * y;
|
},
|
},
|
];
|
|
import { GCJ02ToWGS84 } from "@/utils/CoordTransform";
|
|
const mobilePosition = {
|
state: {
|
getSPosition: null,
|
currentCampus: 1,
|
},
|
mutations: {
|
GET_NOWPOSITION(state, val) {
|
var outData =
|
val ||
|
function (res) {
|
console.log(res);
|
};
|
|
let cur = extent.find((item) => item.key == state.currentCampus);
|
|
global.Geolocation.getLocation(
|
function success(result) {
|
let positionWgs = GCJ02ToWGS84(result.lng, result.lat);
|
|
let position = {
|
lng: cur.x(positionWgs[0], positionWgs[1]),
|
lat: cur.y(positionWgs[0], positionWgs[1]),
|
};
|
|
if (
|
position.lng > cur.xMin &&
|
position.lng < cur.xMax &&
|
position.lat > cur.yMin &&
|
position.lat < cur.yMax
|
) {
|
outData([position.lng, position.lat]);
|
} 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;
|
// }
|
},
|
|
SET_CURRENTCAMPUS(state, val) {
|
state.currentCampus = val;
|
},
|
},
|
actions: {},
|
};
|
|
export default mobilePosition;
|