vue:高德地图的使用

1.安装

        npm安装:

npm install vue-amap --save

       CDN:

<script src="https://unpkg.com/vue-amap/dist/index.js"></script>

2.配置

main.js:

import Vue from 'vue';
import VueAMap from 'vue-amap'; // 高德


Vue.use(VueAMap);
VueAMap.initAMapApiLoader({
  key: '*******你的key*********',
  plugin: ['AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor', 'AMap.Geolocation'],
  v: '1.4.4'
});

3.使用地图

相关参数请参考:组件 | vue-amap

html:

<el-amap vid="amap" :plugin="plugin" :events="events" class="amap" :center="center" :zoom="zoom">
  <el-amap-marker :position="center" vid="amapMarker"></el-amap-marker>
</el-amap>

el-amap-marker:地图的标记点,不需要可以不用写,我这里需要

js:

data () {
    let self = this;
    return {
      nearbyInfo: [], // 周边信息---高德反馈(周边建筑信息)
      addressInfo: '', // 城市信息---高德反馈(省市区、adcode)
      center: [0, 0], // 高德地图中心点
      zoom: 15, // 地图缩放
      events: {
        'click': (e) => { // 点击地图的时候,获取点击的经纬度,并将地图中心点移自此处
          let m = e.lnglat;
          self.addrInput = '';
          self.center = [m.lng, m.lat];
          self.GDmapGetInfoOfNearby(m.lng, m.lat, self); // 获取周边信息
        }
      },
      plugin: [
        {
          pName: 'Geolocation',
          noIpLocate: 1, // ios11: 禁止ip定位:ios11之后默认是ip定位,参数为1则是禁止ip定位
          events: {
            init: (o) => {
              self.GDinit(o, self); // 获取当前位置
            }
          }
        }
      ]
    };
  },

使用‘Geolocation’的时候一定要在前面的配置中写上“AMap.CircleEditor”,否则不生效。

/* 初始化定位当前位置 */
    GDinit (o, self) {
      o.getCurrentPosition((status, result) => {
        console.log(status, result);
        if (status === 'complete' && result.info === 'SUCCESS') {
          let lat = result.position.lat;
          let lng = result.position.lng;
          self.center = [lng, lat];
          self.GDmapGetInfoOfNearby(lng, lat, self); // 获取周边信息
        }
      });
    },
/* 获取周边建筑信息 */
    GDmapGetInfoOfNearby (lng, lat, self) {
      // 这里通过高德 SDK 完成。
      let geocoder = new AMap.Geocoder({ 
        radius: 1000,
        extensions: 'all',
        poitype: ''
      });
      geocoder.getAddress([lng, lat], (status, result) => {
        if (status === 'complete' && result.info === 'OK') {
          if (result && result.regeocode) {
            console.log(result);
            self.$nextTick();
          }
        }
      });
    },

radius:搜索半径,

poitype:返回附近POI类型(周边信息),相关地址:地理/逆地理编码-API文档-开发指南-Web服务 API | 高德地图API

                                                             文档下载地址:相关下载-Web服务 API | 高德地图API

extensions:返回结果控制,参数为 all 时poitype才生效

相关参数地址:地理/逆地理编码-API文档-开发指南-Web服务 API | 高德地图API

4.地图搜索功能

<el-amap-search-box class="search-box" :on-search-result="GDonSearchResult"></el-amap-search-box>

js

    /* 搜索结果回调函数 */
    GDonSearchResult (e) {
      console.log(e);
      this.center = [e.lng, e.lat];
      this.GDmapGetInfoOfNearby(e[0].lng, e[0].lat, this);
    }

相关API:组件 | vue-amap

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
Vue使用高德地图可以通过以下步骤进行: 1. 注册并登录高德地图开放平台,申请密钥。 2. 安装高德地图加载器,可以使用命令`npm install vue-amap --save`进行安装。 3. 在Vue组件中引入vue-amap模块。 4. 封装一个自定义地图组件,并在组件中初始化地图。 5. 可以使用高德地图提供的API进行关键词搜索和定位到搜索结果的位置。 6. 添加放大缩小地图、转盘等功能可以使用高德地图的控件或API进行实现。 7. 可以通过点击地图获取经纬度信息。 8. 地图上可以绘制标记点、圆形、曲线、矩形和多边形等。 9. 可以使用相关方法清除地图上的绘制内容。 总结起来,在Vue使用高德地图,首先需要安装相关依赖并注册密钥,然后引入模块并在组件中初始化地图,最后可以根据需求使用高德地图的API实现各种功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [在Vue使用高德地图](https://blog.csdn.net/weixin_44224921/article/details/126105778)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Vue使用高德地图](https://blog.csdn.net/TanHao8/article/details/117048193)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mosowe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值