Vue项目引入高德地图

本文详细介绍了如何在Vue项目中使用高德地图API,包括注册开发者、获取key、通过npm安装、在Vue组件中设置地图容器、初始化地图并添加卫星图层,以及添加覆盖物、图层和地图插件的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高德地图API官网:https://lbs.amap.com/

一、注册成为开发者

在这里插入图片描述

之后,注册成为开发者

在这里插入图片描述

在这里插入图片描述

点击提交,key值获取成功

二、在项目中获取地图组件

1、npm获取高德地图API

npm  i   @amap/amap-jsapi-loader --save 

获取高德地图API,下载成功后就可以在自己的项目中使用地图API了。

2、在项目中新建vue文件,用作地图组件

3、在vue地图组件中创建div标签作为地图容器,并设置地图容器的id属性为container

<template>
  <!--地图容器-->
  <div id="container"></div>
</template>
 
<script>
  export default {
    name: "gaode"
  }
</script>
 
<style scoped>
  #container {
    width: 80%;
    height: 400px;
    margin: 100px auto;
    border: 2px solid red;
  }
</style>

vue2

<script>
  import AMapLoader from '@amap/amap-jsapi-loader'; //引入
 
  export default {
    name: "gaode",
    data() {
      return {
        map: null //初始化 map 对象
      }
    }
  }
</script>

vue3

<script>
  import {shallowRef} from '@vue/reactivity' //引入
 
  export default {
    name: "gaode",
    setup() {
      const map = shallowRef(null);
      return {
        map,
      }
    },
  }
</script>

4、定义地图初始化函数initMap并调用

 methods: {
        initMap() {
            AMapLoader.load({
                key: "42fe58b9900b0145aa054726568373e2", //此处填入我们注册账号后获取的Key
                version: "2.0", //指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
                plugins: [''], //需要使用的的插件列表,如比例尺'AMap.Scale'等
            }).then((AMap) => {
                this.map = new AMap.Map("container", { //设置地图容器id
                    viewMode: "3D", //是否为3D地图模式
                    zooms: [4, 18], //初始化地图级别范围
                    zoom: 6,
                    center: [117.031767, 35.592788], //初始化地图中心点位置
                });
                var weixing = new AMap.TileLayer.Satellite({
                    //定位卫星图层
                    zIndex: 10
                });
                this.map.add(weixing);
            }).catch(e => {
                console.log(e);
            })
        },
    },
    mouted() {
        this.initMap();
    }

5、完整卫星图代码

<template>
    <!-- 地图容器 -->
    <div id="container">
        <button @click="initMap">查看卫星图</button>
    </div>

</template>

<script>
//setup,用于初始化组件的状态和行为
// shallowRef 是 Vue 3 提供的一个响应式 API,用于创建一个具有浅响应式引用的数据对象。
import { shallowRef } from '@vue/reactivity';
import AMapLoader from '@amap/amap-jsapi-loader';
export default {
    name: "gaode",
    setup() {
        //名为map的响应式对象,这个引用可以用来存储地图对象或地图相关的数据。
        const map = shallowRef(null);
        return {
            map,
        }
    },
    // data() {
    //     return {
    //         map: null,
    //     }
    // },
    methods: {
        initMap() {
            AMapLoader.load({
                key: "42fe58b9900b0145aa054726568373e2", //此处填入我们注册账号后获取的Key
                version: "2.0", //指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
                plugins: [''], //需要使用的的插件列表,如比例尺'AMap.Scale'等
            }).then((AMap) => {
                this.map = new AMap.Map("container", { //设置地图容器id
                    viewMode: "3D", //是否为3D地图模式
                    zooms: [4, 18], //初始化地图级别范围
                    zoom: 6,
                    center: [117.031767, 35.592788], //初始化地图中心点位置
                });
                var weixing = new AMap.TileLayer.Satellite({
                    //定位卫星图层
                    zIndex: 10
                });
                this.map.add(weixing);
            }).catch(e => {
                console.log(e);
            })
        },
    },
    mouted() {
        this.initMap();
    }
}

</script>
<style scoped>
#container {
    width: 100%;
    height: 100%;
    margin: 10px auto;
    border: 2px solid red;
}
</style>

在这里插入图片描述
在这里插入图片描述

三、在地图添加覆盖物、图层、插件、事件等属性

3.1、添加图层

在这部分添加:

(1)普通地图

.then((AMap)=>{
this.map = new AMap.Map("container",{//设置地图容器id
	viewMode:"3D",//是否为3D地图模式
	zoom:5,//初始化地图级别
	center:[117.031767,35.592788],//初始化地图中心点位置
});
})

(2)卫星地图

默认情况下,地图只显示标准底图,如需要加别的图层,可以通过map.add方法添加图层。这个是添加一个卫星图层TileLayer.Satellite,如下:

在这里插入图片描述

3.2、在地图中使用插件(地图控件)

JS API 提供了众多的插件功能,这些功能不会主动随着 JSAPI 主体资源下发,需要引入之后才能使用这些插件的功能。在使用插件之前我们需要先将各个插件引入到plugin 数组中,随后使用 addControl 添加至地图中。

举例:添加图层切换、比例尺、鹰眼三个插件

3.3、其他设置

方法就是以上介绍的方法,大同小异。概述-地图 JS API 2.0 | 高德地图API (amap.com)

Vue项目中使用高德地图,首先需要在main.js文件中引入vue-amap,并初始化vue-amap。具体的引入和初始化步骤如下: 1. 引入vue-amap插件: ```javascript import VueAMap from 'vue-amap'; ``` 2. 初始化vue-amap: ```javascript Vue.use(VueAMap); VueAMap.initAMapApiLoader({ key: '您申请的高德地图key', plugin: [ 'AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor' ], v: '1.4.4' }); ``` 接下来,在需要使用高德地图的组件中,可以通过初始化地图容器和设置地图属性来使用高德地图功能。具体步骤如下: 1. 初始化地图容器: ```javascript initMap() { this.myMap = new AMap.Map('myMap', { zoom: 10, layers: [new AMap.TileLayer()], viewMode: '3D' }); } ``` 2. 在组件的模板中添加地图容器的DOM元素: ```html <div id="myMap"></div> ``` 通过以上步骤,你就可以在Vue项目中使用高德地图功能了。注意要替换掉代码中的'您申请的高德地图key'为你自己申请的高德地图API的key。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Vue之如何调用高德地图步骤详解](https://blog.csdn.net/wwyxjjz/article/details/125845814)[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_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [在vue项目中使用高德地图](https://blog.csdn.net/qq_41585169/article/details/129969454)[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_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值