国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue 使用高德地圖vue-amap組件過程解析

2019-11-19 10:51:24
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了vue 使用高德地圖vue-amap組件過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

首先

npm install -S vue-amap

然后在 main.js

import VueAMap from 'vue-amap'; //注意不要和 AMap原始名稱覆蓋Vue.use(VueAMap);// 初始化vue-amapVueAMap.initAMapApiLoader({ // 高德的key key: 'you key', // 插件集合 plugin: ['AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor','AMap.Geolocation'], v: '1.4.4'});

map.vue文件

其中有個BUS.js,是基于觀察者模式的發布訂閱封裝

<template>  <div class="_map">    <div class="amap-page-container">      <el-amap-search-box class="search-box" :search-option="searchOption" :on-search-result="onSearchResult" ></el-amap-search-box>     <el-amap ref="map" vid="amapDemo" :plugin="plugin" :zoom="zoom" :center="center" class="amap-demo" :events="events">      <el-amap-marker vid="component-marker" :position="makerConf.position" :content="makerConf.content" ></el-amap-marker>     </el-amap>    </div>    <div class="adrs">      <ul>        <li class="" v-for="(item,index) in list" :key="index" :class="currIndex == index ? 'active':''" @click="select(item,index)">          <p class="address">{{item.address}}</p>          <p class="nm">{{item.name}}</p>        </li>      </ul>    </div>  </div> </template>  <style>  .amap-page-container{    height: 300px;    position: relative;  }  .search-box {   position: absolute !important;   top: 25px;   left: 20px;   z-index: 200 !important;  }  .amap-demo {   height: 300px;  }  .amap-logo {      display: none;   }  .amap-copyright {     bottom:-100px;      display: none;  }   .amap-scalecontrol{    bottom: 4px !important;  }  .amap-geolocation-con{    bottom: 30px !important;    z-index: 199 !important;  }  ul li.active{    color: deeppink;  } </style> <script>     export default {   name: 'amap-page',   components: {},   data() {    var me = this;    me.city = me.city || '武漢';    return {     list:[],      currIndex:0,     zoom: 16,     center: [114.397169, 30.50576],     events:{       init: (o) => {       o.setCity(me.city,result => {        console.log("----------setCity",result);        if(result && result.length > 0){          me.zoom = 16;          me.makerConf.position = result;          me.getList(result);        }       });       //去掉logo       document.getElementsByClassName("amap-logo")[0].style.display = "none";      },      "dragend":function(e){        //console.log("dragging",e,this.getCenter());        var point = this.getCenter();        var pos = [point.lng,point.lat];        me.makerConf.position = [point.lng,point.lat];        me.getList(pos);      }     },     makerConf: {      position: [114.397169, 30.50576],      content:""     },     searchOption: {      city: me.city,      citylimit: true     },     plugin:[      'ToolBar',      'Scale',      {      pName: 'Geolocation',      events: {       init(o) {               },       complete:function(result){        //定位成功        var address = result.formattedAddress        var point = result.position;        var obj = {          address:address,          name:"",          location:point        }        me.list = [obj];        me.makerConf.position = [point.lng,point.lat];       },       error:function(){                }      }     }     ]    };   },   created(){    var me = this;    },   mounted(){      },   methods: {    select:function(item,index){      var me = this;      me.currIndex = index;      var point = item.location;      me.makerConf.position = [point.lng,point.lat];      me.center = [point.lng,point.lat];           },    //this.$refs.map.$$getCenter()    getList:function(result){      //獲取列表      var me = this;      me.$Geocoder({        lnglatXY:result,        success:function(res){          if(res.regeocode && res.regeocode.pois){            me.list = res.regeocode.pois;          }else{            me.list = [];          }        },        error:function(res){          me.list = [];        }      });         },    onSearchResult(pois) {      //搜索     let latSum = 0;     let lngSum = 0;     var me = this;          var mymap = me.$refs.map.$$getInstance();            if (pois && pois.length > 0) {             //如果長度為1則無需轉化        var poi = pois[0];        var lng = poi["lng"];        var lat = poi["lat"];        me.center = [lng, lat];        me.makerConf.position = [lng, lat];        //me.makerConf.content = poi.name;        me.list = pois;      }else{        me.list = [];      }    },       $Geocoder(options){      //將坐標點轉化為,詳細地址      options = options || {};      if(AMap){        AMap.plugin(['AMap.Geocoder'], () => {        const geocoder = new AMap.Geocoder({          radius: options.radius || 1000,          extensions: options.extensions || "all"        })        var lnglatXY = options.lnglatXY || [114.397169, 30.50576]; //已知點坐標        geocoder.getAddress(lnglatXY, function(status, result) {          if (status === 'complete' && result.info === 'OK') {            options.success && options.success(result);          }else{            options.error && options.error(status,result);          }        });        });               }            }    },    "watch":{     list:function(){      this.currIndex = 0;     }    }      };     /*   me.$Geocoder({          lnglatXY:[center.lng, center.lat],          success:function(res){            console.log(res);          }    });   *   * */</script>

bus.js

let instance = null;class EventBus {  constructor() {    if (!instance) {      this.events = {};      instance = this;    }    return instance;  }  $emit(event, message) {    if (!this.events[event])      return;    const callbacks = this.events[event];    for (let i = 0, l = callbacks.length; i < l; i++) {      const callback = callbacks[i];       callback.call(this, message);    }  }  $on(event, callback) {    if (!this.events[event])      this.events[event] = [];     this.events[event].push(callback);  }}export default new EventBus();

效果圖

https://elemefe.github.io/vue-amap/#/zh-cn/introduction/install

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湖州市| 巧家县| 云阳县| 新干县| 齐河县| 介休市| 两当县| 淅川县| 天津市| 宿松县| 新郑市| 武威市| 拜泉县| 蚌埠市| 上林县| 柳江县| 龙海市| 肥西县| 中卫市| 丹阳市| 石屏县| 五常市| 肇庆市| 昌黎县| 灵山县| 南木林县| 平顶山市| 加查县| 鹤庆县| 吉首市| 阿瓦提县| 民县| 岱山县| 德兴市| 宁城县| 渝北区| 浮梁县| 萨嘎县| 彰化市| 清河县| 广饶县|