欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue使用高德地圖實(shí)現(xiàn)實(shí)時(shí)定位天氣預(yù)報(bào)功能

 更新時(shí)間:2022年05月31日 16:06:48   作者:船長(zhǎng)在船上  
這篇文章主要介紹了vue使用高德地圖實(shí)現(xiàn)實(shí)時(shí)天氣預(yù)報(bào)功能,根據(jù)定位功能,使用高德地圖實(shí)現(xiàn)定位當(dāng)前城市的天氣預(yù)報(bào)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

實(shí)現(xiàn)效果:

需求:根據(jù)定位功能,使用高德地圖實(shí)現(xiàn)定位當(dāng)前城市的天氣預(yù)報(bào)功能。

JSAPI 的加載

JS API 2.0 版本提供了兩種方案引入地圖 JSAPI:

1. 使用官網(wǎng)提供的 JSAPI Loader 進(jìn)行加載;

2. 以常規(guī) JavaScript 腳本的方式加載;

注意:為避免地圖數(shù)據(jù)協(xié)議和前端資源不匹配導(dǎo)致頁(yè)面運(yùn)行報(bào)錯(cuò),只允許在線加載 JSAPI,禁止進(jìn)行本地轉(zhuǎn)存、與其它代碼混合打包等用法。

使用 JSAPI Loader (推薦)

JSAPI Loader是我們提供的 API 加載器,可幫助開(kāi)發(fā)者快速定位、有效避免加載引用地圖 JSAPI 各種錯(cuò)誤用法,具有以下特性:

  • 來(lái)說(shuō)明下上面的案例的問(wèn)題:為什么此時(shí)圖標(biāo)就無(wú)法粘性定位了,主要是因?yàn)樗ㄗ釉兀┎恢酪阅莻€(gè)父元素的滾動(dòng)為準(zhǔn)(現(xiàn)在有兩個(gè)父級(jí)元素都產(chǎn)生了滾動(dòng)),所以我們要對(duì)一層層祖級(jí)元素檢查看是否有overflow屬性如果有將元素設(shè)置 overflow: visible; body {overflow: visible; }; 簡(jiǎn)單理解:兩個(gè)父級(jí)body 和div.main 如果同高度寬度的話(huà),子元素就不知道到底以父元素為主,就會(huì)出現(xiàn)無(wú)法粘性定位的支持以 普通JS 和 npm包 兩種方式使用;
  • 有效避免錯(cuò)誤異步加載導(dǎo)致的 JSAPI 資源加載不完整問(wèn)題;
  • 對(duì)于加載混用多個(gè)版本 JSAPI 的錯(cuò)誤用法給予報(bào)錯(cuò)處理;
  • 對(duì)于不合法加載引用 JSAPI 給予報(bào)錯(cuò)處理;
  • 支持指定 JSAPI 版本;
  • 支持插件加載;
  • 允許多次執(zhí)行加載操作,網(wǎng)絡(luò)資源不會(huì)重復(fù)請(qǐng)求,便于大型工程模塊管理;
  • 支持IE9以上的瀏覽器,不支持IE8以下

注意(您在2021年12月02日申請(qǐng)以后的key需要配合您的安全密鑰一起使用)

JSAPI key和安全密鑰的使用

JSAPI key搭配代理服務(wù)器并攜帶安全密鑰轉(zhuǎn)發(fā)(安全)

1) 引入 JSAPI 使用 Loader 之前增加代理服務(wù)器設(shè)置腳本標(biāo)簽,設(shè)置代理服務(wù)器域名或地址,將下面示例代碼中的「您的代理服務(wù)器域名或地址」替換為您的代理服務(wù)器域名或ip地址,其中_AMapService為代理請(qǐng)求固定前綴,不可省略或修改。 (注意您這 個(gè)設(shè)置必須是在加載loader.js的腳本引入之前進(jìn)行設(shè)置,否則設(shè)置無(wú)效。)

項(xiàng)目代碼步驟:

1、在index.html頁(yè)面body中添加密鑰

.......
<body>
    <noscript>
      <strong>We're sorry but map-demo doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <script type="text/javascript">
      window._AMapSecurityConfig = {
          // serviceHost:'您的代理服務(wù)器域名或地址/_AMapService',  
          securityJsCode:"xxxxxx"http://申請(qǐng)的密鑰
      }
    </script>
  </body>
......

2、安裝@amap/amap-jsapi-loader 使用

npm i @amap/amap-jsapi-loader --save

 頁(yè)面引入:

import AMapLoader from "@amap/amap-jsapi-loader";

3、實(shí)現(xiàn)代碼:

當(dāng)前截取的代碼是天氣部分

...
<div class="header-content flex align-items">
        <!-- <img src="../../assets/img/index_03.png"/> -->
        <span class="header-left-txt" id="weather" v-if="weatherObj.nightWeather!=weatherObj.dayWeather">
          {{weatherObj.nightWeather}}轉(zhuǎn){{weatherObj.dayWeather}}
          {{weatherObj.nightTemp?weatherObj.nightTemp+"°C":""}}<i v-show="weatherObj.dayTemp">-</i>{{weatherObj.dayTemp?weatherObj.dayTemp+"°C":""}}
        </span>
        <span class="header-left-txt" id="weather" v-else>
          {{weatherObj.dayWeather}}
          {{weatherObj.nightTemp?weatherObj.nightTemp+"°C":""}}<i v-show="weatherObj.dayTemp">-</i>{{weatherObj.dayTemp?weatherObj.dayTemp+"°C":""}}
        </span>
        <!-- <van-icon name="arrow-down" color="#fff" size="14px" class="ml10"/> -->
      </div>
...
// 天氣
weatherObj:{
        nightTemp:"",//夜間溫度,
        dayTemp:"",//白天溫度
        dayWeather:"",//白天天氣
        nightWeather:"",//夜間天氣
}
// 天氣
    loadWeather(city) {
      return new Promise((reslove, reject) => {
        AMapLoader.load({
          key: "xxxxx", // 申請(qǐng)好的Web端開(kāi)發(fā)者Key,首次調(diào)用 load 時(shí)必填
          // version: "2.0", // 指定要加載的 JSAPI 的版本,缺省時(shí)默認(rèn)為 1.4.15
          plugins: ["AMap.Weather"], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
          AMapUI: {
            // 是否加載 AMapUI,缺省不加載
            version: "1.1", // AMapUI 缺省 1.1
            plugins: [] // 需要加載的 AMapUI ui插件
          }
        }).then(AMap => {
            //創(chuàng)建天氣查詢(xún)實(shí)例
            let weather = new AMap.Weather();
            //執(zhí)行實(shí)時(shí)天氣信息查詢(xún)
            weather.getForecast(city?city:"武漢市", (err, data)=> {
                // console.log(err, data);
                if(data.info=="OK"){
                  let forecasts = data.forecasts[0];
                  this.weatherObj = forecasts;
                  console.log(this.weatherObj,"天氣")
 
                }else{
                  console.log("獲取天氣失敗");
                }
            });
            reslove();
          })
          .catch(e => {
            console.log(e, "高德地圖加載失敗");
            reject(e);
          });
      });
    }

可以根據(jù)手機(jī)定位獲取當(dāng)前天氣功能,或者可以實(shí)現(xiàn)切換城市獲取天氣。

mounted(){
     this.loadWeather("武漢");//高德天氣
}

文檔查看:天氣-服務(wù)-教程-地圖 JS API v2.0 | 高德地圖API

到此這篇關(guān)于vue使用高德地圖實(shí)現(xiàn)實(shí)時(shí)天氣預(yù)報(bào)功能的文章就介紹到這了,更多相關(guān)vue實(shí)時(shí)天氣預(yù)報(bào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue.js性能優(yōu)化N個(gè)技巧(值得收藏)

    Vue.js性能優(yōu)化N個(gè)技巧(值得收藏)

    本文主要還是針對(duì) Vue.js 2.x 版本,畢竟接下來(lái)一段時(shí)間,Vue.js 2.x 還是我們工作中的主流版本,對(duì)vue.js性能優(yōu)化技巧相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-09-09
  • 一文詳解Vue3中的setup函數(shù)的用法和原理

    一文詳解Vue3中的setup函數(shù)的用法和原理

    在 Vue3 中,setup 函數(shù)是一個(gè)新引入的概念,它代替了之前版本中的 data、computed、methods 等選項(xiàng),用于設(shè)置組件的初始狀態(tài)和邏輯,本文將主要介紹Setup的基本用法和少量原理
    2024-02-02
  • Element PageHeader頁(yè)頭的使用方法

    Element PageHeader頁(yè)頭的使用方法

    這篇文章主要介紹了Element PageHeader頁(yè)頭的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 帶你一步步從零搭建一個(gè)Vue項(xiàng)目

    帶你一步步從零搭建一個(gè)Vue項(xiàng)目

    Vue.js是現(xiàn)在比較優(yōu)秀的Web前端框架,非常推薦大家入門(mén)學(xué)習(xí),這篇文章主要給大家介紹了關(guān)于如何一步步從零搭建一個(gè)Vue項(xiàng)目的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • Vue實(shí)現(xiàn)天氣預(yù)報(bào)小應(yīng)用

    Vue實(shí)現(xiàn)天氣預(yù)報(bào)小應(yīng)用

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)天氣預(yù)報(bào)小應(yīng)用,查詢(xún)一些城市的天氣情況,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • vue使用Axios做ajax請(qǐng)求詳解

    vue使用Axios做ajax請(qǐng)求詳解

    本篇文章主要介紹了vue使用Axios做ajax請(qǐng)求詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Vue中computed和watch有哪些區(qū)別

    Vue中computed和watch有哪些區(qū)別

    這篇文章主要介紹了Vue中computed和watch有哪些區(qū)別,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-12-12
  • Vue.js+cube-ui(Scroll組件)實(shí)現(xiàn)類(lèi)似頭條效果的橫向滾動(dòng)導(dǎo)航條

    Vue.js+cube-ui(Scroll組件)實(shí)現(xiàn)類(lèi)似頭條效果的橫向滾動(dòng)導(dǎo)航條

    這篇文章主要介紹了Vue.js+cube-ui(Scroll組件)實(shí)現(xiàn)類(lèi)似頭條效果的橫向滾動(dòng)導(dǎo)航條,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-06-06
  • Vue組件高級(jí)通訊之$children與$parent

    Vue組件高級(jí)通訊之$children與$parent

    這篇文章主要為大家介紹了Vue組件高級(jí)通訊之$children與$parent,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • avue-crud多級(jí)復(fù)雜的動(dòng)態(tài)表頭的實(shí)現(xiàn)示例

    avue-crud多級(jí)復(fù)雜的動(dòng)態(tài)表頭的實(shí)現(xiàn)示例

    Avue.js?是基于現(xiàn)有的element-ui庫(kù)進(jìn)行的二次封裝,本文主要介紹了avue-crud多級(jí)復(fù)雜的動(dòng)態(tài)表頭,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12

最新評(píng)論