vue实现高德地图图层切换
时间: 2023-09-04 08:10:46 浏览: 154
首先,需要在 HTML 文件中引入高德地图 API 和 Vue.js:
```html
<!-- 高德地图 API -->
<script src="https://webapi.amap.com/maps?v=1.4.15&key=YOUR_KEY"></script>
<!-- Vue.js -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
```
然后,在 Vue 实例中,可以使用 `mounted` 钩子函数来初始化地图,并添加图层切换控件:
```html
<div id="app">
<div ref="map" style="height: 500px;"></div>
</div>
<script>
new Vue({
el: '#app',
mounted() {
// 初始化地图
const map = new AMap.Map(this.$refs.map, {
zoom: 13,
center: [116.397428, 39.90923],
});
// 添加图层切换控件
map.plugin(['AMap.MapType'], function() {
const typeCtrl = new AMap.MapType({
defaultType: 0, // 默认显示卫星地图
showRoad: true, // 是否显示路网图层
});
map.addControl(typeCtrl);
});
},
});
</script>
```
在 `AMap.MapType` 的构造函数中,可以设置 `defaultType` 属性来指定默认显示的地图类型,其中 `0` 表示标准地图,`1` 表示卫星地图。同时,也可以设置 `showRoad` 属性来指定是否显示路网图层。
完整的代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue 实现高德地图图层切换</title>
<style>
#app {
height: 100%;
display: flex;
flex-direction: column;
}
#map {
flex: 1;
}
</style>
</head>
<body>
<div id="app">
<div id="map" ref="map"></div>
</div>
<script src="https://webapi.amap.com/maps?v=1.4.15&key=YOUR_KEY"></script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
el: '#app',
mounted() {
const map = new AMap.Map(this.$refs.map, {
zoom: 13,
center: [116.397428, 39.90923],
});
map.plugin(['AMap.MapType'], function() {
const typeCtrl = new AMap.MapType({
defaultType: 0, // 默认显示标准地图
showRoad: true, // 是否显示路网图层
});
map.addControl(typeCtrl);
});
},
});
</script>
</body>
</html>
```
阅读全文