import config from '@/utils/mapConfig'; module.exports = { getLocation() { return uni.getLocation({ type: 'wgs84' }) }, getLocationPromise() { return new Promise((resolve, reject) => { uni.getLocation({ type: 'wgs84', success: (res) => { resolve(res) }, fail: () => { resolve({}) } }) }) }, getCurAddress(latitude, longitude, cb) { const postStr = { lon: longitude, lat: latitude, ver: 1 // 接口版本号 } const encodedPostStr = encodeURIComponent(JSON.stringify(postStr)) uni.request({ url: `https://api.tianditu.gov.cn/geocoder?postStr=${encodedPostStr}&type=geocode&tk=${config.key}`, method: 'GET', success: (res) => { if (res.data.status === '0') { // 请求成功[6](@ref) const result = res.data.result; // 从返回数据中提取省市区信息[1,6](@ref) const addressComponent = result.addressComponent; const province = addressComponent.province; // 省份 const city = addressComponent.city; // 城市 const county = addressComponent.county; // 区县 const formattedAddress = result.formatted_address; // 完整地址 cb && cb({ province, city, county, formattedAddress }) } uni.hideLoading() }, fail: () => { uni.hideLoading() } }) }, getLocationSetting(cb) { uni.getSetting({ success: res => { if (!res.authSetting['scope.userLocation']) { uni.showModal({ title: '提示', content: '当前定位未开启,请点击确定手动开启定位', success: response => { if (response.confirm) { cb && cb () } else { uni.showToast({ title: '您拒绝了授权,无法获取定位服务', duration: 2000, icon: 'none' }) } } }) } } }) }, openLocationSettting() { return new Promise((resolve, reject) => { uni.openSetting({ success: res => { if (res.authSetting['scope.userLocation']) { resolve() } else { uni.showToast({ title: '您拒绝了授权,无法获取定位服务', duration: 2000, icon: 'none' }) } }, fail: () => { reject() } }) }) }, getUrlParam(url, name) { url = decodeURIComponent(url) var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = url.match(reg); console.log(r); if (r != null) return (r[2]); return null; } }