H5获取位置天气(高德地图)注:采用模块注入方式,适用于各种前端单页应用和H5创建AMap.js文件//AMap.js//高德地图https:///webapi.amap.com/maps?v=1.4.11&key=keyexportdefaultfunctionMapLoader(){returnnewPromise((resolve,reject)=>{if(window.AMap){resolve(window.AMap))}else{varscript=document.createElement('script')script.type='text/javascript'script.async=true//这里引入所有模块,或者根据需要引入模块,添加参数plugin="模块名称"script.src='http://webapi.amap.com/maps?v=1.4.11&callback=initAMap&key=6747cb97******************7e774b4b62'//你的高德应用AK(参考到官方文档申请)script.onerror=rejectdocument.head.appendChild(script)''}window.initAMap=()=>{resolve(window.AMap)}})}`usevueexample`importMapLoaderfrom'@/common/SDK/AMap.js'MapLoader().then(AMap=>{//加载定位插件AMap.plugin(['AMap.Geolocation','AMap.Weather'],function(){vargeolocation=newAMap.Geolocation({//是否使用高精度定位,默认:trueenableHighAccuracy:true,//设置定位超时时间,default:infinitytimeout:10000,//定位按钮停靠位置的偏移量,default:Pixel(10,20)buttonOffset:newAMap.Pixel(10,20),//定位成功后,调整地图视野,使定位位置和精度范围可见,默认:falsezoomToAccuracy:true,//定位按钮的位置,RB表示右下buttonPosition:'RB'})geolocation.getCurrentPosition()AMap.event.addListener(geolocation,'complete',onComplete)AMap.event.addListener(geolocation,'error',onError)varweather=newAMap.Weather();functiononComplete(data){//data是具体的Location信息that.$store.dispatch('UPDATE_ADDRESS',data.formattedAddress)//weather.getForecast(data.addressComponent.adcode,function(err,data){//console.log(err,data);//});weather.getLive(data.addressComponent.adcode,function(err,data){//console.log(err,data);letobj={adcode:"330100",//区号city:"杭州市",//城市湿度:"92",//空气湿度(百分比)信息:"OK",//状态省份:"浙江",//省份报告时间:"2019-12-2419:55:48",温度:10,//实时温度,单位:摄氏度weather:"Overcast",//天气预报windDirection:"East",//风向,风向编码对应描述windPower:"≤3",//风功率,风电编码对应风电等级,单位:等级}让weatherObj={日期:`${that.$moment().format('MMDDday')}`,周:`${that.$moment().format('d')}`,温度:data.temperature,currentCity:data.city,weatherDesc:data.weather}that.$store.dispatch("UPDATE_Weather",weatherObj)});}functiononError(data){//定位错误if(data.info=='NOT_SUPPORTED'){uni.showModal({title:'Prompt',content:'当前浏览器不支持定位功能'||'定位失败'})}elseif(data.info=='FAILED'){uni.显示模态({标题:'提示',内容:data.message||'定位失败'})}}})},e=>{console.log('地图加载失败',e)})}`感谢点赞,转发点赞并注明出处
