From e3dcaeb0180a4e37347ac9ceb44c8a59ae7af37f Mon Sep 17 00:00:00 2001
From: liuyg <liuyg@qq.com>
Date: Mon, 21 Feb 2022 19:40:20 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/qfqk-android
---
leafletMapOur/grabOrdersMap/js/getPosition.js | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 180 insertions(+), 0 deletions(-)
diff --git a/leafletMapOur/grabOrdersMap/js/getPosition.js b/leafletMapOur/grabOrdersMap/js/getPosition.js
index e69de29..a154b87 100644
--- a/leafletMapOur/grabOrdersMap/js/getPosition.js
+++ b/leafletMapOur/grabOrdersMap/js/getPosition.js
@@ -0,0 +1,180 @@
+class $getPositions {
+ constructor(arg) {
+ this.id = arg.id || 0; //任务id
+ this.fn = arg.fn ? function(data) {
+ arg.fn(data);
+ } : function(data) {
+ console.log("未设置输出回调")
+ return data;
+ };
+ this.ourPosition = []; //全部位置
+ this.nowPosition = []; //当前位置
+ this.onceNowPosition = []; //当前一次位置
+ this.getOnceSPosition = null;
+ this.state = false;
+ this.isContinued = false;
+ this.isContinuedTimeInt = null;
+ this.isContinuedTimeOut = null;
+ return this;
+ }
+ //开始获取
+ init() {
+ //判断权限
+ return this;
+
+ }
+ continued() {
+ //开始持续获取定位
+ console.log("开始持续定位")
+ let that = this;
+ this.isContinued = true;
+ if (this.isContinuedTimeInt) {
+ console.log("重复开始持续定位")
+ return;
+ } else {
+ that.once(function(res) {
+ if (res.state == false) {
+ console.log(res.intlat)
+ }
+ })
+ this.isContinuedTimeInt = setInterval(() => {
+ that.once(function(res) {
+ if (res.state == false) {
+ console.log(res.intlat)
+ }
+ })
+ }, 5000)
+ }
+ }
+ continuedTime(val) {
+ //开始持续获取定位
+ let that = this;
+ if (val != 1) {
+ // console.log(that.id,"开始持续定位")
+ this.isContinued = true;
+ that.once(function(res) {
+ if (res.state == false) {
+ // console.log(res.intlat)
+ that.outData();
+ }
+ })
+ if (this.isContinuedTimeOut) {
+ // console.log("重复开始持续定位")
+ return;
+ }
+ }
+ this.isContinuedTimeOut = setTimeout(() => {
+ that.once(function(res) {
+ if (res.state == false) {
+ // console.log(res.intlat)
+ that.outData();
+ if (res.ok) {
+ //返回成功
+ that.continuedTime(1);
+ } else {
+ //返回失败
+ that.continuedTime(1);
+ }
+ }
+ })
+ }, 3000)
+
+ }
+ overContinued() {
+ // console.log("结束持续定位")
+ let that = this;
+ if (this.isContinued) {
+ this.isContinued = false;
+ if (this.isContinuedTimeInt) {
+ clearInterval(that.isContinuedTimeInt);
+ this.isContinuedTimeInt = null;
+ }
+ if (this.isContinuedTimeOut) {
+ clearTimeout(that.isContinuedTimeOut);
+ this.isContinuedTimeOut = null;
+ }
+ }
+ this.isContinued = false;
+ that.outData('out');
+ }
+ once(fn) {
+ // console.log("开始获取一次定位");
+ this.state = true;
+ let ok = true;
+ let that = this,
+ fns = fn || '',
+ outit = function() {
+ if (fns) {
+ fns({
+ state: that.state,
+ intlat: that.onceNowPosition,
+ ok: ok
+ })
+ } else {
+ that.outData();
+ }
+ };
+ outit();
+ let success = function(position) {
+ // console.log(position);
+ var lat = position.coords.longitude;//经度
+ var lon = position.coords.latitude;//纬度
+ // console.log("成功返回经纬度信息");
+ // console.log(lon, lat, "成功");
+ that.onceNowPosition = [lat, lon];
+ that.state = false;
+ ok = true;
+ outit();
+ };
+ let error = function(error) {
+ // console.log(error, "失败");
+ 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;
+ }
+ that.onceNowPosition = msg;
+ that.state = false;
+ ok = false;
+ outit();
+ };
+ let options = {
+ enableHighAccuracy: true,
+ // timeout: 5000,
+ timeout: Infinity,
+ maximumAge: 0,
+ };
+ this.getOnceSPosition = navigator.geolocation.getCurrentPosition(
+ success,
+ error,
+ options
+ );
+ }
+ //结束获取
+ outInit() {
+
+ }
+ //抛出数据
+ outData(val) {
+ let d = {
+ state: this.state,
+ intlat: this.onceNowPosition
+ }
+ if (val) {
+ d[val] = val
+ }
+ this.fn(d)
+ }
+}
+
+// export default $getPositions;
--
Gitblit v1.9.3