三分鐘幫你在vue項目下解決地圖的使用

前序準備

學習了解本文章時你需要提前,了解過或使用過 vue蒿囤、 es6客们、 npm市場。
本次的講解將會基于高德地圖官方推出的amap-jsapi-loader包

高德地圖開放平臺


高德的官方api文檔材诽,這個是必須要看的啦底挫!不然你做錘子的地圖,是吧脸侥!


第一步(默認你已經(jīng)建好了一個vue項目)

在你的項目中下載amap-jsapi-loader ,下載命令npm i @amap/amap-jsapi-loader安裝好后接著我這里的 或者npm包的那個介紹建邓,里面有使用方法,這里我就搬點會用到的過來

//某個js文件下  或者vue文件的script標簽里面
import AMapLoader from '@alife/amap-jsapi-loader';


//個人說明 AMapLoader .load()這個函數(shù)可以創(chuàng)建出高德地圖的實例睁枕,包括某些地圖的參數(shù)
AMapLoader.load({
    "key": "youkey",     // 申請好的Web端開發(fā)者Key官边,首次調(diào)用 load 時必填
    "version": "2.0",   // 指定要加載的 JSAPI 的版本,缺省時默認為 1.4.15
    "plugins": []           // 需要使用的的插件列表外遇,如比例尺'AMap.Scale'等
    "AMapUI": {             // 是否加載 AMapUI注簿,缺省不加載
        "version": '1.1',   // AMapUI 缺省 1.1
        "plugins":[],       // 需要加載的 AMapUI ui插件
    },
    "Loca":{                // 是否加載 Loca, 缺省不加載
        "version": '1.3.2'  // Loca 版本跳仿,缺省 1.3.2
    },
})

特別注意:AMapLoader.load這個函數(shù)返回的是一個promis對象诡渴,記得使用then


第二步(初次體驗 vue文件下)

現(xiàn)在我們創(chuàng)建一個vue文件,當然你可以隨意在一個vue文件下菲语。

<template>
  <div>
    <div id="container"></div>
  </div>
</template>
<script>
import AMapLoader from '@alife/amap-jsapi-loader';
export default{
  created() {
     AMapLoader.load({
      key:"你的高德key",
    }).then((AMap)=>{
          map = new AMap.Map('container');
      }).catch(e=>e);
  }
}

</script>
<style>
#container {
  height: 500px;
  width: 100%;
}
</style>

好了妄辩,你現(xiàn)在可以看到一個地圖在項目上了 記得填key值

這是我項目上的截圖


第三步,自己寫的山上,感覺用的很好

上面有說過AMapLoader.load這個函數(shù)是一個promis對象眼耀,此時接觸了怎么多vue項目的你,肯定會反應(yīng)出 promis?那不就是api佩憾!api?那不就是拋出一個方法的js文件畔塔!
很好,js文件拋出一個方法就這樣寫出來了鸯屿,就像寫api一樣輕松

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

export function initMap() {
    return AMapLoader.load({
        key: "yourKey", // 申請好的Web端開發(fā)者Key澈吨,首次調(diào)用 load 時必填
        version: "1.4.15", // 指定要加載的 JSAPI 的版本,缺省時默認為 1.4.15
        plugins: [], // 需要使用的的插件列表寄摆,如比例尺'AMap.Scale'等
        AMapUI: {
            // 是否加載 AMapUI谅辣,缺省不加載
            version: "1.1", // AMapUI 缺省 1.1
            plugins: [], // 需要加載的 AMapUI ui插件
        },
        Loca: {
            // 是否加載 Loca, 缺省不加載
            version: "1.3.2", // Loca 版本婶恼,缺省 1.3.2
        },
    })
}

我把這個文件放到了utils/下并且命名為initamap.js
然后關(guān)于地圖的實例所有的參數(shù)桑阶,就可以在這個文件下去編寫柏副。
根據(jù)amap-jsapi-loader寫實例的參數(shù)
js拋出文件有了,下一步不用說也是vue文件引入啦

<template>
  <div>
    <div id="container"></div>
  </div>
</template>
<script>
import { initMap } from "./utils/initMap";
export default {
  async created() {
//拿到AMap 實例,這個就是包含了所有高德地圖方法的實例
  const AMap = await initMap().then(r=>r).catch(e=>e);
  const map = new AMap .Map("container")
 }
}
</script>
<style>
#container {
  height: 500px;
  width: 100%;
}
</style>

溫馨提示:new AMap .Map("container")中的container是你templant標簽里面 map 容器的id類名蚣录,同時這個盒子記得設(shè)置寬高


到了這里 你就可以根據(jù)高德地圖的例子cv東西了

我這里以三維地圖的3D地圖為例子


看到官方例子的js怎么寫了嗎割择,是不是和我將實例提出來很像?像就對了萎河!
二話不說荔泳,將上面的搬下來

<template>
  <div>
    <div id="container"></div>
  </div>
</template>
<script>
import { initMap } from "./utils/initMap";
export default {
  async created() {
  const AMap = await initMap().then(r=>r).catch(e=>e);
  const map = new AMap .Map("container",{
    resizeEnable: true,
    rotateEnable:true,
    pitchEnable:true,
    zoom: 17,
    pitch:80,
    rotation:-15,
    viewMode:'3D',//開啟3D視圖,默認為關(guān)閉
    buildingAnimation:true,//樓塊出現(xiàn)是否帶動畫
    expandZoomRange:true,
    zooms:[3,20],
    center:[116.333926,39.997245]
})
 }
}
</script>
<style>
#container {
  height: 500px;
  width: 100%;
}
</style>

發(fā)現(xiàn)差異了嗎?我只需要將官方api例子里的js代碼cv過來就ojbk了虐杯。至此地圖對你來說就是翻官方的api例子就行了玛歌。同時你也學會了在vue中使用高德地圖的所有方法。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末擎椰,一起剝皮案震驚了整個濱河市支子,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌达舒,老刑警劉巖值朋,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異巩搏,居然都是意外死亡吞歼,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門塔猾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人稽坤,你說我怎么就攤上這事丈甸。” “怎么了尿褪?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵睦擂,是天一觀的道長。 經(jīng)常有香客問我杖玲,道長顿仇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任摆马,我火速辦了婚禮臼闻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘囤采。我一直安慰自己述呐,他們只是感情好,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布蕉毯。 她就那樣靜靜地躺著乓搬,像睡著了一般思犁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上进肯,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天激蹲,我揣著相機與錄音,去河邊找鬼江掩。 笑死学辱,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的频敛。 我是一名探鬼主播项郊,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼斟赚!你這毒婦竟也來了着降?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤拗军,失蹤者是張志新(化名)和其女友劉穎任洞,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體发侵,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡交掏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了刃鳄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盅弛。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖叔锐,靈堂內(nèi)的尸體忽然破棺而出挪鹏,到底是詐尸還是另有隱情,我是刑警寧澤愉烙,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布讨盒,位于F島的核電站,受9級特大地震影響步责,放射性物質(zhì)發(fā)生泄漏返顺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一蔓肯、第九天 我趴在偏房一處隱蔽的房頂上張望遂鹊。 院中可真熱鬧,春花似錦蔗包、人聲如沸稿辙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邻储。三九已至赋咽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吨娜,已是汗流浹背脓匿。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宦赠,地道東北人陪毡。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像勾扭,于是被迫代替她去往敵國和親毡琉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容