uni-app使用uni.chooseLocation打开地图选取位置并将位置截取成省市区

📅 2026/8/26 13:47:25
uni-app使用uni.chooseLocation打开地图选取位置并将位置截取成省市区
1.打开微信小程序开发平台申请开通权限开发 — 开发管理 — 接口设置 点击去开通开通之后才可以使用2.对小程序进行配置3.在页面中进行调用uni.chooseLocation()并对返回的地址信息进行截取如果无法调用重新运行项目即可template view classaddress-box view classget-location-btn clickgetLocation打开地图获取位置/view view classaddress-details-box view classprovince-box省:{{ address.province }}/view view classcity-box市:{{ address.city }}/view view classarea-box区:{{ address.area }}/view view classdetail-address-box详细地址:{{ address.detailAddress }}/view view classaddress-info-box经纬度:{{ address.longitude }},{{ address.landline }}/view /view /view /template script setup import { ref } from vue; const address ref({ detailAddress: , province: , city: , area: , longitude: , latitude: , landline: , }); // 点击获取位置 const getLocation () { console.log(获取位置); uni.chooseLocation({ success: res { console.log(res, res); console.log(位置名称 res.name); console.log(详细地址 res.address); console.log(纬度 res.latitude); console.log(经度 res.longitude); let locationObj captureLocation(res); console.log(locationObj, locationObj); address.value.province locationObj.province; address.value.city locationObj.city; address.value.area locationObj.country; address.value.detailAddress locationObj.address; address.value.longitude res.longitude; address.value.latitude res.latitude; }, }); }; /** * 格式化位置 * param {*} res chooseLocation成功后返回参数 * 格式: { address: 山东省济南市槐荫区经十西路29851号 errMsg: chooseLocation:ok latitude: 36.65142 longitude: 116.90084 name: 济南市槐荫区人民政府 } */ const captureLocation (res) { // console.log(res, res); var regex /^(北京市|天津市|重庆市|上海市|香港特别行政区|澳门特别行政区)/; var province []; var addressBean { province: null, country: null, city: null, address: null, }; function regexAddressBean(address, addressBean) { // console.log(address, address); // console.log(addressBean, addressBean); regex /^(.*?[市]|.*?[州]|.*?地区|.*?特别行政区)(.*?[区]|.*?[市]|.*?[县])(.*?)$/g; var addxress regex.exec(address); console.log(addxress, addxress); addressBean.city addxress[1]; addressBean.country addxress[2]; addressBean.address addxress[3] ( res.name ); // console.log(addxress); } if (!(province regex.exec(res.address))) { regex /^(.*?(省|自治区))(.*?)$/; province regex.exec(res.address); addressBean.province province[1]; regexAddressBean(province[3], addressBean); } else { addressBean.province province[1]; regexAddressBean(res.address, addressBean); } return addressBean; }; /script