vue使用Google地圖

最近用Vue開發(fā)后臺(tái)系統(tǒng)時(shí),有些數(shù)據(jù)需要在地圖上標(biāo)注出來敌土,需要用到地圖功能疫铜,因?yàn)槭菄H項(xiàng)目茂浮,國內(nèi)的地圖不太適用,所以選用了Google地圖壳咕,谷歌地圖API:https://developers.google.cn/maps/documentation/javascript/tutorial席揽。
一、必須的開發(fā)要求
1.獲取密鑰API Key
首先谓厘,要使用Google Maps JavaScript API幌羞,必須獲取一個(gè)可用的API密鑰,并且必須啟用結(jié)算竟稳,具體獲取步驟可百度查詢属桦,在此就不一一敘述了,主要想講的地圖用法他爸。
2.海外服務(wù)器IP
.想要使用谷歌地圖就需要翻墻了聂宾,公司購買的是發(fā)條云的賬號(hào),在瀏覽器上下載發(fā)條云安裝诊笤,安裝好之后輸入用戶賬號(hào)和密碼進(jìn)行登錄亏吝,就可以選擇服務(wù)器進(jìn)行操作了。

fatiaoyun.jpg

海外模式的網(wǎng)速比較慢盏混,一般開發(fā)谷歌地圖的時(shí)候蔚鸥,我才打開。
二许赃、安裝谷歌插件
使用npm進(jìn)行安裝:
npm install vue-google-maps

//mian.js中:
import 'vue-googlemaps/dist/vue-googlemaps.css'
import VueGoogleMaps from 'vue-googlemaps'
Vue.use(VueGoogleMaps, {
  load: {
//填入申請(qǐng)的apiKey賬號(hào)
    apiKey: '',
    libraries: ['places'],
    useBetaRenderer: false,
  },
})

三止喷、使用谷歌插件
1.使用方法

   //創(chuàng)建dom
<div id="allmap" ref="allmap"></div>
    //創(chuàng)建谷歌地圖
      this.maps = new google.maps.Map(document.getElementById("allmap"), {
       //顯示一個(gè)滑動(dòng)條來控制map的Zoom級(jí)別
        zoom: 13,
       //設(shè)置地圖中心點(diǎn)
        center: { lat: mapData[0].latitude, lng: mapData[0].longitude },
        //為了關(guān)閉默認(rèn)控件集,設(shè)置地圖的disableDefaultUI的屬性為true
        disableDefaultUI: true,
      // 通過單擊縮放控件來縮放地圖
        gestureHandling: 'cooperative',   
      // 刪除地圖上的“ 縮放”控件按鈕。
        zoomControl: false,
      // 控制地圖的類型  roadmap 地圖 terrain 地圖地形  
      satellite 衛(wèi)星圖像  hybrid 衛(wèi)星圖像+地名
       mapTypeId: 'satellite',           
        //語言可選值:en混聊,zh_en, zh_cn
        language: zh_en   
   
     // 添加標(biāo)記 (紅色的標(biāo)點(diǎn))
      let marker = new google.maps.Marker({
        //標(biāo)點(diǎn)的位置
        position: { lat: 22.5397965915, lng: 114.0611121534 },
        map: this.maps,
      //標(biāo)點(diǎn)的名稱
       title: "中華人民共和國",
      //標(biāo)點(diǎn)中的文字
        label: "SZ",
      //標(biāo)點(diǎn)的動(dòng)畫
        animation: google.maps.Animation.DROP
       });
       //  創(chuàng)建消息窗口DOM弹谁,將內(nèi)容包裝在HTML DIV中,以便設(shè)置InfoWindow的高度和寬度。
      let contentString =
        '<div class="content"><h3>地圖</h3><p>測(cè)試數(shù)據(jù)</p></div>';
      //地圖的消息窗口:InfoWindow
      let infowindow = new google.maps.InfoWindow({
        content: contentString
      });
     // 點(diǎn)擊標(biāo)點(diǎn)事件
      marker.addListener("click", function() {
        infowindow.open(this.maps, marker);
      });

示例圖片:
GoogleMap1.jpg

2.結(jié)合項(xiàng)目

//mapPAge.vue
<template>
  <div class="container">
    <div id="allmap" ref="allmap"></div>
  </div>
</template>
<script>
export default {
   mounted(){
   //在mounted中執(zhí)行地圖方法预愤,mapData為要展示的數(shù)據(jù)
   this.initMap(mapData);
}
   methods:{
    initMap(mapData) {
      let that = this;
      // 創(chuàng)建google地圖
        this.maps = new google.maps.Map(document.getElementById("allmap"), {
        zoom: 13,
       //地圖中心點(diǎn)沟于,這里我以第一個(gè)數(shù)據(jù)的經(jīng)緯度來設(shè)置中心點(diǎn)
        center: { lat: mapData[0].latitude, lng: mapData[0].longitude },
        disableDefaultUI: false,
        zoomControl: false     
      });    
      // 設(shè)置滿足條件的自定義標(biāo)記圖標(biāo)
      let imageblue = "@/img/map_blue.png";
      let imagered = "@/img/map_red.png";
      let imagegray = "@/img/map_gray.png";
      let infoWindow = new google.maps.InfoWindow();
      // 循環(huán)渲染數(shù)據(jù)
      mapData.map(currData=>{
        // 判斷當(dāng)前圖片
        let currImg = "";
        if (currData.line == 0) {
          currImg = imagegray;
        } else {
          if (currData.available >= 4) {
            currImg = imageblue;
          } else {
            currImg = imagered;
          }
        }
        let marker = new google.maps.Marker({
          position: { lat: currData.latitude, lng: currData.longitude },
          map: this.maps,
          title: currData.name,
          // 此處的icon為標(biāo)記的自定義圖標(biāo)
          icon: currImg,
          animation: google.maps.Animation.DROP
        });
       
         //多個(gè)標(biāo)記點(diǎn)的點(diǎn)擊事件
        (function(marker, currData) {
          google.maps.event.addListener(marker, "click", function(e) {
            let currLine =
              currData.line == 1? '在線': '離線';
            //設(shè)置消息窗口的統(tǒng)一內(nèi)容
            infoWindow.setContent(
              '<div class="content"><h3 style="margin-bottom:5px;font-size:20px;">' +
                currData.name +
                '</h3><p style="margin-bottom:5px;font-size:16px;">' +
                currData.address +
                '</p></h3><p style="display: flex;align-items:center;margin-bottom:5px;"><span style="display:inline-block;width:12px;height:12px;border-radius:50%;background:#4ECC77;"></span><span style="margin-left:5px;color:#4ECC77;">可用電池 ' +
                +currData.available +
                '<span style="display:inline-block;width:12px;height:12px;border-radius:50%;background:#FF485C;margin-left:25px;"></span><span style="margin-left:5px;color:#FF485C;">空倉 ' +
                +currData.empty +
                '</span></p><p style="color:#333;margin-top:5px;">機(jī)柜狀態(tài):<span style="color:#000;">' +currLine+
                '</span></p><p style="color:#333;margin-top:5px;">地理位置:<span style="color:#000;">lat:' +
                currData.latitude +
                ";log:" +
                currData.longitude +
                "</span></p></div>"
            );
           //調(diào)用 infoWindow.open
            infoWindow.open(this.maps, marker);
          });
        })(marker, currData);
          })
       }
    }
  }

示例圖片:
GoogleNap.png

以上使用的是谷歌地圖的基本內(nèi)容植康,有興趣的小伙伴兒可以查看谷歌官方文檔旷太,查看更多內(nèi)容,使用更多功能O(∩_∩)O销睁。

ye.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末供璧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子冻记,更是在濱河造成了極大的恐慌睡毒,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冗栗,死亡現(xiàn)場離奇詭異演顾,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)隅居,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門钠至,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人军浆,你說我怎么就攤上這事〉踩颍” “怎么了乒融?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長摄悯。 經(jīng)常有香客問我赞季,道長,這世上最難降的妖魔是什么奢驯? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任申钩,我火速辦了婚禮,結(jié)果婚禮上瘪阁,老公的妹妹穿的比我還像新娘撒遣。我一直安慰自己,他們只是感情好管跺,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布义黎。 她就那樣靜靜地躺著,像睡著了一般豁跑。 火紅的嫁衣襯著肌膚如雪廉涕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天,我揣著相機(jī)與錄音狐蜕,去河邊找鬼宠纯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛层释,可吹牛的內(nèi)容都是我干的婆瓜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼湃累,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼勃救!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起治力,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤蒙秒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后宵统,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晕讲,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年马澈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瓢省。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡痊班,死狀恐怖勤婚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涤伐,我是刑警寧澤馒胆,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站凝果,受9級(jí)特大地震影響祝迂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜器净,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一型雳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧山害,春花似錦纠俭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至眷射,卻和暖如春匙赞,著一層夾襖步出監(jiān)牢的瞬間佛掖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國打工涌庭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芥被,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓坐榆,卻偏偏與公主長得像拴魄,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子席镀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

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

  • 一匹中、做了什么有價(jià)值的事? 1.把調(diào)整不好的心情調(diào)整的更好了 2.聽Tom老師解讀《人類簡史》 二豪诲、發(fā)現(xiàn)問題 無 五...
    小小小小丶兵閱讀 158評(píng)論 0 0
  • 前幾天看到前女友發(fā)的文字照片顶捷,她給別人說不是我,可我覺得就是我屎篱!心情復(fù)雜
    Xiaowu_We閱讀 553評(píng)論 0 0
  • 蒼天:有您抱著我 ■曾曉琴 云朵 尋夢(mèng)秋季 剪影千山萬水 悠悠張揚(yáng) 知否 與您醉游花溪 浪花輕輕打在 白里透紅...
    向前的冰山來客15669閱讀 266評(píng)論 0 7
  • //聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄 概念1.認(rèn)識(shí)MesaSQLite軟件 圖2: 一....
    石虎132閱讀 652評(píng)論 2 7
  • 讀重構(gòu)(改善既有代碼的設(shè)計(jì))一點(diǎn)心得 序言 距離我讀重構(gòu)這本書已經(jīng)過去了很久服赎,最近需要分享一下讀這本書的感悟心得,...
    吳小亮的技術(shù)小站閱讀 338評(píng)論 0 0