VUE 高德地图JS API --- 快速创建地图

1、实现步骤

1.1 准备

成为开发者并创建 key:为了正常调用 API,请先注册成为高德地图开放平台开发者,并申请 web 平台(JS API)的 key 和安全密钥,点击 具体操作。

1.2 页面准备
<template>
    <div class="container"> <!-- 预设用于添加自定义内容 -->
        <div class="map" id="container">
		</div>	
	</div>
</template>



<style>
    .container {
	    display: flex;
	    justify-content: center;
	    align-items: center;
	    position: absolute;
	    top: 0;
	    left: 0;
	    right: 0;
	    bottom: 0;
    }
    .map {
	    position: relative;
	    width: 100%;
	    height: 100%;
	    z-index: 1;
    }
</style>
1.3 JS API 的加载和地图初始化

使用 JS API Loader 来加载,引入在控制台申请的 key 和 安全密钥。

<script>
    export default {
        data() {
            return {
                AMap: null,
            }
        },
        // 钩子函数
        created() {
            this.initAmap()
        },

        methods: {
            //初始化地图
            initAmap() {
                window._AMapSecurityConfig = {
				    securityJsCode:'「你申请的安全密钥」',
			    }
                AMapLoader.load({
                    "key": "「你申请的应用Key」", //申请好的Web端开发者 Key,调用 load 时必填
                    "version": "2.0",  // 指定要加载的 JS API 的版本,缺省时默认为 1.4.15
                    "plugins": [        // 需要使用的插件列表,如比例尺'AMap.Scale'等
                        'AMap.Scale',    //比例尺
                    ]
                }).then((AMap) => {
                    this.AMap = AMap;        // 让AMap 可以全局调用
                    this.map = new this.AMap.Map('container',{
                        viewMode: '2D',  // 默认使用 2D 模式
					    zoom: 12,	//显示缩放级别
					    zooms: [2, 29],//地图显示的缩放级别范围, 默认为 [2, 20] ,取值范围 [2 ~ 30]
					    center: [116.3409, 39.87546]  //初始化地图中心点
                    })
                })
            },
        }
    }
</script>
1.4 为地图点标记 Marker,并添加事件

JS API 提供了再地图之上绘制覆盖物的能力,使用 add() 方法添加一个默认的点标记 Marker。

提示:代码需添加到 .then(AMap)=>{}) 中,即:AMap对象可以取到后执行,同理后边步骤的代码都有此要求。

const marker = new AMap.Marker({
    position: [116.39, 39.9],    // 位置
})
this.map.add(marker);    // 添加到地图

marker.on("click", onMarkerClick);    // onMarkerClick为自定义事件
1.5 为地图添加折线 Polyline

向点标记一样,通过 add() 方法向地图添加这群 Polyline。

const lineArr = [
    [116.368904, 39.913423],
    [116.382122, 39.901176],
    [116.387271, 39.912501],
    [116.398258, 39.904600]
]
const polyline = new this.AMap.Polyline({
    path: lineArr, //设置线覆盖物路径
    strokeColor: "#3366FF", //线颜色
    strokeWeight: 5, //线宽
    strokeStyle: "solid", //线样式
})
map.add(polyline);