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" }
);
});
},