国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

記錄--手把手教你Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化

這篇具有很好參考價(jià)值的文章主要介紹了記錄--手把手教你Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

這里給大家分享我在網(wǎng)上總結(jié)出來的一些知識(shí),希望對(duì)大家有所幫助

記錄--手把手教你Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化

前言

所謂數(shù)據(jù)可視化,我們可以理解為從宏觀角度來看一眼就能看出來整個(gè)數(shù)據(jù)的占比,走向。對(duì)于數(shù)據(jù)可視化,很多互聯(lián)網(wǎng)公司是很看重這一塊的,包括大廠;就比如阿里的淘寶,雙十一的時(shí)候往往就需要將消費(fèi)者的一些數(shù)據(jù)通過圖的形式展現(xiàn)出來。接下來我們就來實(shí)現(xiàn)一個(gè)天氣的數(shù)據(jù)可視化(移動(dòng)端開發(fā)),看如下效果圖(iPhone6/7/8)。

記錄--手把手教你Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化

準(zhǔn)備工作

  1. 注冊(cè)一個(gè)高德地圖API賬號(hào),選擇開發(fā)支持,地圖 JS API。

記錄--手把手教你Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化

  1. 登錄控制臺(tái)成為開發(fā)者并創(chuàng)建?key。

記錄--手把手教你Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化

  1. 進(jìn)入安全密鑰使用說明,找到方式二。

記錄--手把手教你Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化

  1. 創(chuàng)建一個(gè)vue項(xiàng)目,將vue的一些默認(rèn)組件和樣式刪除,在views下新建一個(gè)Index.vue,并且在index.js下配置路由。目錄結(jié)構(gòu)如下所示:

記錄--手把手教你Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化

  1. 通過npm install echarts --save安裝一個(gè)依賴,這樣就可以使用echarts了。

開始(細(xì)分11步)

  1. 將準(zhǔn)備工作第三步找到的方式二的兩個(gè)<script>引入到index.html中,將你自己申請(qǐng)的key值和安全密鑰粘貼到里面去。這樣就可以使用高德地圖 JS API 開發(fā)地圖應(yīng)用。

  2. 設(shè)置頭部樣式和背景色,時(shí)間和切換城市用到了彈性布局。

  //html
  <div class="container">
        <div class="nav">
            <div class="time">7:41</div>
            <div class="city">切換城市</div>
        </div>
  <div>
 //css
  .container {
    min-height: 100vh;
    background: #000;
    opacity: 0.7;
    color: #fff;
}

.nav {
    display: flex;
    justify-content: space-between;
    padding: 10px;
}
  1. 設(shè)置我們需要的天氣數(shù)據(jù)展示的html+css結(jié)構(gòu),這主要考查的是切頁面能力。
 //html
 <div class="city-info">
            <p class="city">{{}}</p>
            <p class="weather">{{}}</p>
            <h2 class="temp">
                <em></em>℃
            </h2>
            <div class="detail">
                <span>風(fēng)力:{{
                }}</span>|
                <span>風(fēng)向:{{ }}</span>|
                <span>空氣濕度:{{  }}</span>
            </div>
        </div>
        <div class="future">
            <div class="group" v-if="futureData.length > 0">
                明天:
                <span class="tm">白天:{{ }}℃ {{ 
                }} {{  }}風(fēng) {{ }} </span>
                <span class="tm"> 夜間:{{
                }}℃ {{  }} {{  }}風(fēng) {{ 
}}
                </span>
            </div>
            <div class="group" v-if="futureData.length > 0">
                后天:
                <span class="tm">白天:{{ }}℃ {{ 
                }} {{  }}風(fēng) {{  }} </span>
                <span class="tm"> 夜間:{{ 
                }}℃ {{  }} {{  }}風(fēng) {{ 
}}
                </span>
            </div>
        </div> 
//css
.city-info {
    text-align: center;

    .temp {
        font-size: 26px;

        em {
            font-size: 34px;
            font-style: normal;
        }
    }
}

.future {
    padding: 0 10px;
    margin-top: 30px;

    .group {
        height: 44px;
        line-height: 44px;
        background: rgba(255, 255, 255, 0.3);
        margin-bottom: 10px;
        padding: 0 10px;
        font-size: 13px;
        border-radius: 5px;

    }
}
  1. 再放一個(gè)div?用于存放折線圖。
//html
<div class="echart-container"> </div>
//css
.echart-container {
    width: 100%;
    height: 50vh;
}
  1. watchEffectonMounted來獲取天氣數(shù)據(jù)。

  2. 想要獲取天氣情況我們先要獲得定位,這是需要用到高德地圖API,我們來到這個(gè)位置:開發(fā)?>?地圖 JS API v2.0?>?教程?>?服務(wù)?>?定位,找到IP定位獲取當(dāng)前城市信息。

記錄--手把手教你Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化 將這段代碼復(fù)制到onMounted的回調(diào)函數(shù)中,這樣我們就能獲取到定位信息。

  1. 接下來就可以來獲取天氣了,我們把獲取天氣封裝成一個(gè)函數(shù)getWeather。同樣的我們來到:開發(fā)?>?地圖 JS API v2.0?>?教程?>?服務(wù)?>?天氣,找到實(shí)時(shí)天氣查詢。

記錄--手把手教你Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化

把上圖中的代碼復(fù)制到獲取天氣的函數(shù)中,并將它放在獲取定位成功后執(zhí)行,傳入定位的城市,這樣就可以獲得定位的城市的天氣情況了。

  1. 同樣的,我們來獲取未來幾天的天氣情況,通過下面的代碼就可以獲取到。
weather.getForecast('cityName', function(err, data) {
console.log(err, data); });

注意:此時(shí)輸出的未來天氣是一個(gè)數(shù)組。

  1. 我們已經(jīng)獲取到了天氣數(shù)據(jù)了,接下來就要把這些數(shù)據(jù)存起來,把它變成響應(yīng)式的,然后把它放到頁面上展示出來。
 const state = reactive({
            today: {},
            futureData: [],
        })
        
  state.today = data
  state.futureData = data.forecasts
   return {
            ...toRefs(state),
        }

把數(shù)據(jù)放到頁面上我理解的是挖坑然后埋數(shù)據(jù),就像下面這樣:

 <p class="city">{{ today.city }}</p>
 <p class="weather">{{ today.weather }}</p>

注意:由于futureData是一個(gè)數(shù)組,我們要在它放數(shù)據(jù)的div上加一個(gè)v-if="futureData.length > 0",要不然會(huì)報(bào)錯(cuò)。

<div class="group" v-if="futureData.length > 0">
                明天:
<span class="tm">白天:{{ futureData[1].dayTemp }}℃ {{ futureData[1].dayWeather}} {{ futureData[1].dayWindDir }}風(fēng) {{ futureData[1].dayWindPower }} </span>
<span class="tm"> 夜間:{{ futureData[1].nightTemp }}℃ {{ futureData[1].nightWeather }} {{ futureData[1].nightWindDir }}風(fēng) {{ futureData[1].nightWindPower
}}
                </span>
            </div>
  1. 接下來我們就來做一個(gè)折線圖了,打開ECharts官網(wǎng),選一個(gè)折線圖Examples - Apache ECharts

定義一個(gè)方法initEchart來完成圖的繪制(這里定義了一個(gè)空數(shù)組來獲取未來幾天的溫度)

  const tempArr = ref([])
   data.forecasts.forEach(item => {
                        tempArr.value.push(item.dayTemp)
                    })
  const echartContainer = ref(null)
  const initEchart = () => {
            const myChat = echarts.init(echartContainer.value);
            let option = {
                xAxis: {
                    type: 'category',
                    data: ['今天', '明天', '后天', '大后天'],
                    lineStyle: {
                        color: '#fff'
                    },
                    axisTick: {
                        show: false
                    },

                },
                yAxis: {
                    type: 'value',
                    show: false

                },
                series: [
                    {
                        data: tempArr.value,
                        type: 'line'
                    }
                ]
            };
            myChat.setOption(option)
        }
   return {
            echartContainer
        }

別忘了在裝這幅圖的div上掛一個(gè)ref="echartContainer"喲。

這樣就能幫我們初始化一個(gè)折線圖了。

  1. 最后直接在獲取未來天氣中調(diào)用initEchart就可以了。

部分代碼

<script>
import { toRefs, watchEffect, reactive, ref, onMounted } from 'vue';
import * as echarts from 'echarts';


export default {
    setup() {
        const echartContainer = ref(null)
        const state = reactive({
            today: {},
            futureData: [],
        })
        const tempArr = ref([])



        onMounted(() => {
            //1.獲取定位
            AMap.plugin('AMap.CitySearch', function () {
                var citySearch = new AMap.CitySearch()
                citySearch.getLocalCity(function (status, result) {
                    // console.log(status);
                    if (status === 'complete' && result.info === 'OK') {
                        // 查詢成功,result即為當(dāng)前所在城市信息
                        //console.log(result.city);
                        getWeather(result.city)
                    }
                })
            })
        })
        const getWeather = (cityName) => {
            //加載天氣查詢插件
            AMap.plugin('AMap.Weather', function () {
                //創(chuàng)建天氣查詢實(shí)例
                var weather = new AMap.Weather();

                //執(zhí)行實(shí)時(shí)天氣信息查詢
                weather.getLive(cityName, function (err, data) {
                    console.log(err, data);
                    state.today = data
                });
                //未來的天氣
                weather.getForecast(cityName, function (err, data) {
                    console.log(err, data);
                    state.futureData = data.forecasts

                    data.forecasts.forEach(item => {
                        tempArr.value.push(item.dayTemp)
                    })
                    initEchart()
                });



            });
        }

        const initEchart = () => {
            const myChat = echarts.init(echartContainer.value);
            let option = {
                xAxis: {
                    type: 'category',
                    data: ['今天', '明天', '后天', '大后天'],
                    lineStyle: {
                        color: '#fff'
                    },
                    axisTick: {
                        show: false
                    },

                },
                yAxis: {
                    type: 'value',
                    show: false

                },
                series: [
                    {
                        data: tempArr.value,
                        type: 'line'
                    }
                ]
            };
            myChat.setOption(option)
        }
        return {
            ...toRefs(state),
            echartContainer
        }
    }
}
</script>

本文轉(zhuǎn)載于:

https://juejin.cn/post/7230078695767294013

如果對(duì)您有所幫助,歡迎您點(diǎn)個(gè)關(guān)注,我會(huì)定時(shí)更新技術(shù)文檔,大家一起討論學(xué)習(xí),一起進(jìn)步。

?記錄--手把手教你Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化文章來源地址http://www.zghlxwxcb.cn/news/detail-469843.html

到了這里,關(guān)于記錄--手把手教你Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 手把手教你在Windows下搭建Vue開發(fā)環(huán)境

    手把手教你在Windows下搭建Vue開發(fā)環(huán)境

    最近有小伙伴不會(huì)Vue環(huán)境的部署,小孟親自測試了下,大家有需要的可以按照下面的學(xué)習(xí)。 如果想看視頻的,也可以看視頻的教程: https://www.bilibili.com/video/BV1if4y1X7BS/?spm_id_from=333.788.recommend_more_video.-1vd_source=e64f225fc5daf048d2687502cb23bb3b 在Windows下搭建Vue開發(fā)環(huán)境: 官網(wǎng)https://n

    2024年02月08日
    瀏覽(27)
  • 手把手教你用 Docker 部署 Vue3 項(xiàng)目

    手把手教你用 Docker 部署 Vue3 項(xiàng)目

    用 docker 可以幫我們快速部署前端項(xiàng)目,本文介紹了如何用 docker 快速部署 vue3 項(xiàng)目。請(qǐng)準(zhǔn)備好一臺(tái)云服務(wù)器并安裝好 docker,然后開始閱讀本教程。 執(zhí)行 npm run build 打包后項(xiàng)目目錄中會(huì)多出一個(gè) dist 文件夾 利用 docker 拉取 nginx 鏡像 在服務(wù)器中創(chuàng)建工作目錄,這里我放在 /ho

    2024年02月05日
    瀏覽(34)
  • 手把手教你搭建VUE+VScode+elementUI開發(fā)環(huán)境

    手把手教你搭建VUE+VScode+elementUI開發(fā)環(huán)境

    1.安裝node.js 按照VUE必須先要安裝node.js (1)打開NodeJs官網(wǎng):https://nodejs.org/en/download/ ,根據(jù)系統(tǒng)下載,Windows操作系統(tǒng)一般選擇是64-bit。 (2)點(diǎn)擊64-bit就開始下載了。 (3)雙擊安裝,安裝過程基本直接“NEXT”就可以了。(windows的安裝msi文件在過程中會(huì)直接添加path的系統(tǒng)變

    2024年02月09日
    瀏覽(28)
  • 手把手教你搭建Spring Boot+Vue前后端分離

    手把手教你搭建Spring Boot+Vue前后端分離

    1 什么是前后端分離 前后端分離是目前互聯(lián)網(wǎng)開發(fā)中比較廣泛使用的開發(fā)模式,主要是將前端和后端的項(xiàng)目業(yè)務(wù)進(jìn)行分離,可以做到更好的解耦合,前后端之間的交互通過xml或json的方式,前端主要做用戶界面的渲染,后端主要負(fù)責(zé)業(yè)務(wù)邏輯和數(shù)據(jù)的處理。 2 Spring Boot后端搭建

    2023年04月08日
    瀏覽(100)
  • 手把手教你入門Vue,猴子都能看懂的教程

    手把手教你入門Vue,猴子都能看懂的教程

    概述 : 動(dòng)態(tài)構(gòu)建 用戶界面 的 漸進(jìn)式 框架 動(dòng)態(tài)構(gòu)建 :虛擬DOM 用戶界面 漸進(jìn)式 作者 特點(diǎn) 聲明式 編碼、遵循 MVVM 原則 編碼簡單、體積小 組件化、復(fù)用率高、代碼維護(hù)容易 vue2官網(wǎng)資源 :https://v2.cn.vuejs.org/ 2.1 插值語法 概述 :解析 標(biāo)簽體 內(nèi)容、可以解析表達(dá)式( 可以返

    2024年01月17日
    瀏覽(28)
  • vue系列(三)——手把手教你搭建一個(gè)vue3管理后臺(tái)基礎(chǔ)模板

    vue系列(三)——手把手教你搭建一個(gè)vue3管理后臺(tái)基礎(chǔ)模板

    目錄 一、前言: 二、網(wǎng)站頁面分析 三、開發(fā)步驟 (一)、安裝element (二)、安裝使用svg插件 (三)、編寫主界面框架代碼 ?(四)、編寫菜單欄 ?(五)、新建頁面及路由 (六)、定制頁面標(biāo)簽欄 第一步: 第二步: (七)、修改封裝菜單欄 (八)、添加面包屑 四、結(jié)

    2023年04月24日
    瀏覽(25)
  • 手把手教你使用vue2搭建微前端micro-app

    手把手教你使用vue2搭建微前端micro-app

    ? 本文主要講述新手小白怎么搭建micro-app,幾乎是每一步都有截圖說明。上手應(yīng)該很簡單。 這段時(shí)間在網(wǎng)上找了很多有關(guān)微前端相關(guān)的知識(shí),起初本來是想著先搭建一個(gè)single-spa,但是奈何網(wǎng)上能找到的內(nèi)容都是千篇一律。我也是搭了好久沒搭出來。不知道為啥,反正就是一

    2024年01月20日
    瀏覽(37)
  • 手把手教你如何把vue項(xiàng)目打包后部署到服務(wù)器(小白教程)

    手把手教你如何把vue項(xiàng)目打包后部署到服務(wù)器(小白教程)

    一.需要用到的工具 vscode 下載鏈接:Visual Studio Code - Code Editing. Redefined FinalShell 下載鏈接:FinalShell官網(wǎng) 二.打包步驟 1.vscode打開你的vue項(xiàng)目-- 點(diǎn)終端 -- 輸入npm run build 按回車進(jìn)行打包; ?2.打包成功 , 生成了dist文件夾, 打包好的文件會(huì)默認(rèn)存放在里面; ? 三. 用FinalShell連接服

    2024年02月16日
    瀏覽(37)
  • 手把手教你用VUE寫個(gè)例子訪問后端WebApi的接口獲取數(shù)據(jù)并顯示出來

    手把手教你用VUE寫個(gè)例子訪問后端WebApi的接口獲取數(shù)據(jù)并顯示出來

    本文接著上文《手把手叫你用VS2019寫個(gè)WebApi(可以供網(wǎng)頁、手機(jī)、電腦三端連接使用)從網(wǎng)頁訪問后端并在后端通過EF獲取sqlserver中的數(shù)據(jù)》 https://blog.csdn.net/weixin_43935474/article/details/132497256?spm=1001.2014.3001.5501 上文中介紹了如何創(chuàng)建一個(gè)WebApi后端接口的例子,現(xiàn)在來寫個(gè)網(wǎng)頁端

    2024年02月06日
    瀏覽(18)
  • 【項(xiàng)目實(shí)戰(zhàn)】手把手教你搭建前后端分離項(xiàng)目 SpringBoot + Vue + Element UI + Mysql

    【項(xiàng)目實(shí)戰(zhàn)】手把手教你搭建前后端分離項(xiàng)目 SpringBoot + Vue + Element UI + Mysql

    ?? 博主介紹 : 博主從事應(yīng)用安全和大數(shù)據(jù)領(lǐng)域,有8年研發(fā)經(jīng)驗(yàn),5年面試官經(jīng)驗(yàn),Java技術(shù)專家,WEB架構(gòu)師,阿里云專家博主,華為云云享專家,51CTO TOP紅人 Java知識(shí)圖譜點(diǎn)擊鏈接: 體系化學(xué)習(xí)Java(Java面試專題) ???? 感興趣的同學(xué)可以收藏關(guān)注下 , 不然下次找不到喲

    2024年02月16日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包