acdr-ui/dist/dev/mp-weixin/service/mapService.js
2024-10-01 09:15:35 +08:00

72 lines
1.9 KiB
JavaScript

"use strict";
var __async = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
} catch (e) {
reject(e);
}
};
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
const common_vendor = require("../common/vendor.js");
const utils_http = require("../utils/http.js");
const CACHE_KEY = "lastLocation";
const THROTTLE_TIME = 3e4;
const getMapDetailAddress = (longitude, latitude) => __async(exports, null, function* () {
try {
const res = yield utils_http.httpGet("/map/detail", {
longitude,
latitude
});
if (res.code == 200) {
return res.data;
}
return null;
} catch (err) {
console.error("获取详细地址信息失败:", err);
throw err;
}
});
const getLocation = () => __async(exports, null, function* () {
const currentTime = Date.now();
const cachedLocation = common_vendor.index.getStorageSync(CACHE_KEY);
if (cachedLocation && currentTime - cachedLocation.time < THROTTLE_TIME) {
return cachedLocation.data;
}
try {
const res = yield new Promise((resolve, reject) => {
common_vendor.index.getLocation({
type: "gcj02",
success: (res2) => {
resolve(res2);
},
fail: (err) => {
reject(err);
}
});
});
common_vendor.index.setStorageSync(CACHE_KEY, {
data: res,
time: currentTime
// 记录获取位置的时间戳
});
return res;
} catch (err) {
console.log(err);
throw err;
}
});
exports.getLocation = getLocation;
exports.getMapDetailAddress = getMapDetailAddress;