“vue-amap“: “^0.5.10“, 高德地图 vue版本 H5地图 实现根据地名搜索坐标,经纬度

本文详述了如何在Vue项目中使用vue-amap插件集成高德地图,包括安装、配置及组件使用。在main.js中全局注入AMap,设置插件并初始化地图。在组件中展示地图并添加标记,通过Geocoder实现地址到经纬度的转换。提供的代码示例清晰展示了整个流程。
摘要由CSDN通过智能技术生成

本文介绍高德地图在vue框架中的使用方法,H5地图通用;
首先引入 “vue-amap”: “^0.5.10”,
npm install vue-amap;

然后在main.js里写入如下代码

import VueAMap from 'vue-amap';

Vue.use(VueAMap);

VueAMap.initAMapApiLoader({
  // 修改下面的key值,其中key值可前往官网进行申请;
  key: '',
  plugin: [
    'AMap.Autocomplete',
    'AMap.PlaceSearch',
    'AMap.Scale',
    'AMap.OverView',
    'AMap.ToolBar',
    'AMap.MapType',
    'AMap.PolyEditor',
    'AMap.CircleEditor',
    'AMap.Geocoder'
  ],
  // 默认高德 sdk 版本为 1.4.4
  v: '1.4.4'
});

请注意,上述plugin中的AMap其实是在main文件中,给vue全局注入的对象,在自己的vue文件中 可直接使用AMap进行对象拿取。


在自己的组件中使用:

 <div class="amap-wrapper">
   <el-amap class="amap-box" vid="amap-vue" :zoom="zoom" :center="center" :plugin="plugin" :events="events">
     <el-amap-marker vid="marker" :position="center" :label="label"></el-amap-marker>
   </el-amap>
 </div>
export default {
  data() {
    let self = this;
    return {
    zoom: 16,
      address: '',
      //mark的时候显示tip
      label: {
        content: '',
        offset: [10, 12]
      },
      //插件集合
      plugin: [
        //工具条
        {
          pName: 'ToolBar',
          positon: 'LB'
        }
      ],
      events: {
        init(map) {
          // 这里通过高德 SDK 完成。 如上所说AMap直接就可以取用,无须重复声明;
          var geocoder = new AMap.Geocoder({
            radius: 1000,
            extensions: 'all',
            city: '全国'
          });
          // 实现根据地名搜索坐标,经纬度,并地图锁定展示。
          geocoder.getLocation(self.address, (status, result) => {
            console.log(status, result);
            if (status === 'complete' && result.geocodes.length) {
              let lnglat = result.geocodes[0].location;
              self.lng = lnglat.lng;
              self.lat = lnglat.lat;
              self.center = [self.lng, self.lat];
            }
          });
        }
      },
      center: [117.070755, 38.683162],
    }
created() {
   const companyAddress = '山东省青岛市城阳区首创空港国际中心';
   this.address = companyAddress;
   this.label.content = companyAddress;
 };

效果如图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值