h5 百度获取地址
vue+unipp(h5)
获取省市区地址 baduMap.js 异步加载
export default { init: function () { const AK = "***"; const BMap_URL = 'https://api.map.baidu.com/api?v=2.0&ak=' + AK + '&s=1&callback=onBMapCallback'; return new Promise((resolve, reject) => { // 如果已加载直接返回 if (typeof BMap !== 'undefined') { resolve(BMap); return true; } // 百度地图异步加载回调处理 window.onBMapCallback = function () { resolve(BMap); }; let getCurrentCityName = function () { return new Promise(function (resolve, reject) { let myCity = new BMap.LocalCity() myCity.get(function (result) { resolve(result.name) }) }) } // 插入script脚本 let scriptNode = document.createElement("script"); scriptNode.setAttribute("type", "text/javascript"); scriptNode.setAttribute("src", BMap_URL); document.body.appendChild(scriptNode); }); } }
引用
import map from "../../utils/baduMap.js"; mounted() { this.getCity(); }, // 百度获取地区 getCity() { // if(!map){ // return; // } map.init().then((BMap) => { const locationCity = new BMap.Geolocation(); var that = this; locationCity.getCurrentPosition( function getinfo(options) { let city = options.address.city; //此处拿到位置相关信息 that.LocationCity = city; that.region = options.address.province + "," + options.address.city; if (that.region === ",") { that.region = ""; } console.log( that.region) }, function (e) { that.LocationCity = "定位失败"; uni.showToast({ title: "定位失败!请检查定位权限并关闭重开", duration: 4000, icon: "none", }); }, { provider: "baidu" } ); }); },