高德地图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)