最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue使用Google地圖的實(shí)現(xiàn)示例代碼

 更新時(shí)間:2018年12月19日 09:14:08   作者:童話(huà)_xxv  
這篇文章主要介紹了vue使用Google地圖的實(shí)現(xiàn)示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

最近用Vue開(kāi)發(fā)后臺(tái)系統(tǒng)時(shí),有些數(shù)據(jù)需要在地圖上標(biāo)注出來(lái),需要用到地圖功能,因?yàn)槭菄?guó)際項(xiàng)目,國(guó)內(nèi)的地圖不太適用,所以選用了Google地圖,谷歌地圖API: https://developers.google.cn/maps/documentation/javascript/tutorial 。

一、必須的開(kāi)發(fā)要求

1.獲取密鑰API Key

首先,要使用Google Maps JavaScript API,必須獲取一個(gè)可用的API密鑰,并且必須啟用結(jié)算,具體獲取步驟可百度查詢(xún),在此就不一一敘述了,主要想講的地圖用法。

2.海外服務(wù)器IP

公司購(gòu)買(mǎi)的是發(fā)條云的賬號(hào),在瀏覽器上下載發(fā)條云安裝,安裝好之后輸入用戶(hù)賬號(hào)和密碼進(jìn)行登錄,就可以選擇服務(wù)器進(jìn)行操作了。

海外模式的網(wǎng)速比較慢,一般開(kāi)發(fā)谷歌地圖的時(shí)候,我才打開(kāi)。

二、引入谷歌插件

使用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)條來(lái)控制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,
   // 通過(guò)單擊縮放控件來(lái)縮放地圖
    gestureHandling: 'cooperative',  
   // 刪除地圖上的“ 縮放”控件按鈕。
    zoomControl: false,
   // 控制地圖的類(lèi)型 roadmap 地圖 terrain 地圖地形 
   satellite 衛(wèi)星圖像 hybrid 衛(wèi)星圖像+地名
    mapTypeId: 'satellite',      
    //語(yǔ)言可選值: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)的名稱(chēng)
    title: "中華人民共和國(guó)",
   //標(biāo)點(diǎn)中的文字
    label: "SZ",
   //標(biāo)點(diǎn)的動(dòng)畫(huà)
    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);
   });

示例圖片:

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)緯度來(lái)設(shè)置中心點(diǎn)
    center: { lat: mapData[0].latitude, lng: mapData[0].longitude },
    disableDefaultUI: false,
    zoomControl: false   
   });  
   // 設(shè)置滿(mǎn)足條件的自定義標(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;">空倉(cāng) ' +
        +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);
     })
    }
  }
 }

示例圖片:

以上使用的是谷歌地圖的基本內(nèi)容,有興趣的小伙伴兒可以查看谷歌官方文檔,查看更多內(nèi)容,使用更多功能O(∩_∩)O。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談Vuex的this.$store.commit和在Vue項(xiàng)目中引用公共方法

    淺談Vuex的this.$store.commit和在Vue項(xiàng)目中引用公共方法

    這篇文章主要介紹了淺談Vuex的this.$store.commit和在Vue項(xiàng)目中引用公共方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • Vue樹(shù)表格分頁(yè)的實(shí)現(xiàn)方法詳解

    Vue樹(shù)表格分頁(yè)的實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了Vue樹(shù)表格分頁(yè)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-10-10
  • Vue中下載不同文件五種常用的方式

    Vue中下載不同文件五種常用的方式

    自己最近做項(xiàng)目的時(shí)候遇到需要下載文件的需求,索性這里給總結(jié)下,這篇文章主要給大家介紹了關(guān)于Vue中下載不同文件五種常用的方式,需要的朋友可以參考下
    2023-09-09
  • Vue路由守衛(wèi)案例代碼

    Vue路由守衛(wèi)案例代碼

    在Vue中,路由守衛(wèi)分為三種:全局路由守衛(wèi)、獨(dú)享路由守衛(wèi)以及組件內(nèi)路由守衛(wèi),本文重點(diǎn)介紹Vue路由守衛(wèi)案例代碼,需要的朋友可以參考下
    2023-02-02
  • 解決vue v-for src 圖片路徑問(wèn)題 404

    解決vue v-for src 圖片路徑問(wèn)題 404

    今天小編就為大家分享一篇解決vue v-for src 圖片路徑問(wèn)題 404,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • 使用Vant如何實(shí)現(xiàn)數(shù)據(jù)分頁(yè),下拉加載

    使用Vant如何實(shí)現(xiàn)數(shù)據(jù)分頁(yè),下拉加載

    這篇文章主要介紹了使用Vant實(shí)現(xiàn)數(shù)據(jù)分頁(yè)及下拉加載方式。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue-cli proxyTable 解決開(kāi)發(fā)環(huán)境的跨域問(wèn)題詳解

    Vue-cli proxyTable 解決開(kāi)發(fā)環(huán)境的跨域問(wèn)題詳解

    本篇文章主要介紹了Vue-cli proxyTable 解決開(kāi)發(fā)環(huán)境的跨域問(wèn)題詳解,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-05-05
  • vue.js2.0點(diǎn)擊獲取自己的屬性和jquery方法

    vue.js2.0點(diǎn)擊獲取自己的屬性和jquery方法

    下面小編就為大家分享一篇vue.js2.0點(diǎn)擊獲取自己的屬性和jquery方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Vue項(xiàng)目移動(dòng)端滾動(dòng)穿透問(wèn)題的實(shí)現(xiàn)

    Vue項(xiàng)目移動(dòng)端滾動(dòng)穿透問(wèn)題的實(shí)現(xiàn)

    這篇文章主要介紹了Vue項(xiàng)目移動(dòng)端滾動(dòng)穿透問(wèn)題的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • vue-router中hash模式與history模式的區(qū)別

    vue-router中hash模式與history模式的區(qū)別

    為了構(gòu)建 SPA(單頁(yè)面應(yīng)用),需要引入前端路由系統(tǒng),這就是 Vue-Router 存在的意義,而這篇文章主要給大家介紹了關(guān)于vue-router中兩種模式區(qū)別的相關(guān)資料,分別是hash模式、history模式,需要的朋友可以參考下
    2021-06-06

最新評(píng)論

合江县| 栾川县| 蒙自县| 芜湖市| 吉安县| 玉门市| 察雅县| 麻阳| 青州市| 武冈市| 新郑市| 临城县| 余江县| 治多县| 甘泉县| 彰武县| 大邑县| 临桂县| 包头市| 即墨市| 辽宁省| 巴青县| 张家川| 玉山县| 永仁县| 梁河县| 旅游| 康平县| 沐川县| 隆安县| 习水县| 杂多县| 凤凰县| 麻城市| 昌乐县| 巢湖市| 湖北省| 宝应县| 佛教| 凤冈县| 舟山市|