vue3高德地图画出区域
时间: 2025-05-18 18:01:52 浏览: 18
### 实现 Vue3 集成高德地图并绘制多边形区域
在 Vue3 项目中集成高德地图并实现绘制多边形的功能,可以通过 `@amap/amap-jsapi-loader` 加载高德地图 API 并完成初始化。以下是完整的实现方法:
#### 初始化高德地图
首先,在项目的入口文件(如 `main.js` 或者组件内部)加载高德地图的 JavaScript 文件,并通过配置项设置安全密钥。
```html
<script>
window._AMapSecurityConfig = {
securityJsCode: "你的安全密钥", // 替换为实际的安全密钥
};
</script>
<script src="https://webapi.amap.com/maps?v=1.4.15&key=你的APIKey"></script> <!-- 替换为自己的API Key -->
```
上述代码片段用于全局加载高德地图脚本[^3]。
#### 创建 Vue3 组件
接下来创建一个 Vue3 的单文件组件来封装高德地图功能。
```vue
<template>
<div id="mapContainer" class="map-container"></div>
</template>
<script>
import { onMounted } from 'vue';
export default {
name: "AmapPolygon",
setup() {
let map;
let polygon;
const initMap = () => {
AMapLoader.load({
key: "你的APIKey", // 替换为您的高德地图 API 密钥
version: "1.4.15",
plugins: ["AMap.PolygonEditor"], // 引入插件
}).then((AMap) => {
map = new AMap.Map("mapContainer", {
zoom: 10,
center: [116.397428, 39.90923], // 设置初始中心点坐标
});
// 添加一个多边形
const path = [
[116.39, 39.9],
[116.40, 39.9],
[116.40, 39.91],
[116.39, 39.91],
];
polygon = new AMap.Polygon({
path: path,
strokeColor: "#FF33FF", // 边框颜色
strokeWeight: 6, // 边框粗细度
fillColor: "#1791fc", // 填充颜色
zIndex: 50,
});
polygon.setMap(map);
// 启用多边形编辑器
const editor = new AMap.PolygonEditor(map, polygon);
editor.open();
});
};
onMounted(() => {
initMap(); // 页面挂载完成后调用地图初始化函数
});
return {};
},
};
</script>
<style scoped>
.map-container {
width: 100%;
height: 500px;
}
</style>
```
此代码实现了以下功能:
- 使用 `onMounted` 生命周期钩子确保页面渲染完毕后再执行地图初始化逻辑。
- 调用了 `AMapLoader.load()` 方法动态加载高德地图及其所需插件[^1]。
- 利用 `AMap.Polygon` 类定义了一个简单的多边形对象,并将其绑定到地图上。
- 开启了多边形编辑模式以便用户可以交互调整形状。
#### 注意事项
为了使绘图工具更加灵活,还可以引入其他插件比如鼠标事件监听 (`MouseTool`) 来支持自由手动画线等功能[^2]。
---
阅读全文
相关推荐

















