vue3中组合式api中使用百度地图,添加城市列表控件
时间: 2023-11-26 19:06:24 浏览: 93
vue项目中使用百度地图的方法
要在Vue3中使用百度地图,你需要先在Vue3项目中引入百度地图API,并在组件中创建地图实例。在组合式API中,你可以使用`onMounted`钩子函数来初始化地图并添加城市列表控件。具体步骤如下:
1. 在`<head>`标签中引入百度地图API,例如:
```
<script src="http://api.map.baidu.com/api?v=2.0&ak=your_ak"></script>
```
其中,`your_ak`是你在百度地图开放平台申请的AK。
2. 在组件中使用`ref`来创建地图实例,例如:
```
<template>
<div ref="mapContainer"></div>
</template>
<script>
import { ref, onMounted } from 'vue'
export default {
setup() {
const mapContainer = ref(null)
let map = null
onMounted(() => {
map = new BMap.Map(mapContainer.value)
// 中心点为北京
const point = new BMap.Point(116.404, 39.915)
map.centerAndZoom(point, 15)
// 添加城市列表控件
const size = new BMap.Size(70, 20)
map.addControl(new BMap.CityListControl({
anchor: BMAP_ANCHOR_TOP_LEFT,
offset: size,
// 切换城市时更新地图中心点
onChangeBefore: function () {
const cityName = this.cityList.value
map.setCenter(cityName)
}
}))
})
return {
mapContainer
}
}
}
</script>
```
在`onMounted`钩子函数中,创建地图实例并设置中心点,然后使用`addControl`方法添加城市列表控件。在控件的`onChangeBefore`事件中,获取选择的城市名称并设置地图中心点。
注意:在使用百度地图API时,请遵守百度地图开放平台的相关规定和条款。
阅读全文