0.效果预览
1. 按 NPM 方式安装使用 Loader
npm i @amap/amap-jsapi-loader --save
2. 新建 MapContainer.vue 文件
在项目中新建 MapContainer.vue
文件,用作地图组件。
3.创建地图容器
在 MapContainer.vue
地图组件中创建 div 标签作为地图容器 ,并设置地图容器的 id 属性为 container。
<template>
<div id="container"></div>
</template>
4.设置地图容器样式
<style scoped>
#container{
padding:0px;
margin: 0px;
width: 100%;
height: 800px;
}
</style>
5.引入 JS API Loader
在地图组件 MapContainer.vue
中引入 amap-jsapi-loader
import AMapLoader from '@amap/amap-jsapi-loader';
6.创建地图组件
在 MapContainer.vue
文件中初始化地图
vue 2 中的组件形式
<template>
<div id="container" />
</template>
<script>
import AMapLoader from '@amap/amap-jsapi-loader'
export default {
name: 'MapView',
props: {
point: {
type: Array,
default: () => [116.397428, 39.90923]
},
radius: {
type: Number,
default: 500
}
},
data() {
return {
text: null,
circle: null,
marker: null,
circleEditor: null
}
},
mounted() {
this.initAMap()
},
unmounted() {
this.map?.destroy()
},
methods: {
initAMap() {
AMapLoader.load({
key: '867e334269c0b9efbb3b9bff05f1d020', // 申请好的Web端开发者Key,首次调用 load 时必填
version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
plugins: ['AMap.CircleEditor'] // 需要使用的的插件列表,如比例尺'AMap.Scale'等
})
.then((AMap) => {
// 初始化地图
this.map = new AMap.Map('container', {
// 设置地图容器id
viewMode: '3D', // 是否为3D地图模式
zoom: 16, // 初始化地图级别
center: this.point // 初始化地图中心点位置
})
// 创建地图标记(marker)并赋值给this.marker
// 假设我们想在地图的中心点添加一个标记
this.marker = new AMap.Marker({
position: this.point, // 标记在地图上的位置
map: this.map // 将标记添加到地图上
})
this.circle = new AMap.Circle({
center: this<