在网页应用中,地图点击事件是常见的交互功能。例如,在展示地图信息时,用户可以通过点击地图上的特定位置来获取该位置的详细信息。
本代码实现的功能是为百度地图添加点击事件。当用户点击地图上的任意位置时,会触发事件处理函数,该函数会弹出提示框显示点击位置的经纬度信息。
1. 导入百度地图API
async mounted() {
await Promise.all([
this.loadScripts([
// 加载百度地图API和相关库文件
'https://api.map.baidu.com/api?type=subway&v=1.0&ak=cxtWZ9zGiLlLdQwBSuGGwpanwqfaLvEc&services=&t=20240319170303',
'http://api.map.baidu.com/getscript?type=webgl&v=1.0&ak=cxtWZ9zGiLlLdQwBSuGGwpanwqfaLvEc&services=&t=20240319170303',
// 加载信息框、富标记、绘图管理器、距离测量工具等扩展库
'https://mapopen.bj.bcebos.com/github/BMapGLLib/InfoBox/src/InfoBox.js',
'https://mapopen.bj.bcebos.com/github/BMapGLLib/RichMarker/src/RichMarker.min.js',
'https://mapopen.bj.bcebos.com/github/BMapGLLib/DrawingManager/src/DrawingManager.min.js',
'https://mapopen.cdn.bcebos.com/github/BMapGLLib/DistanceTool/src/DistanceTool.min.js',
]),
this.loadStyles([
'http://api.map.baidu.com/res/webgl/10/bmap.css',
'http://mapopen.cdn.bcebos.com/github/BMapGLLib/DrawingManager/src/DrawingManager.min.css',
]),
])
}
2. 初始化地图
var map = new BMapGL.Map('container')
map.centerAndZoom(new BMapGL.Point(116.404, 39.928), 15)
map.enableScrollWheelZoom(true)
BMapGL.Map
对象,并指定地图容器的 id
为 container
。3. 定义点击事件处理函数
function showInfo(e) {
alert('经纬度:' + e.latlng.lng + ',' + e.latlng.lat)
}
showInfo
函数,该函数在点击地图时触发。4. 添加和移除地图点击事件
// 添加地图点击事件
function addMapEvent() {
map.addEventListener('click', showInfo)
}
// 移除地图点击事件
function removeMapEvent() {
map.removeEventListener('click', showInfo)
}
addMapEvent
函数通过 addEventListener
方法为地图添加点击事件监听器,当点击地图时触发 showInfo
函数。removeMapEvent
函数通过 removeEventListener
方法移除点击事件监听器,停止触发 showInfo
函数。通过这段代码,我们实现了在百度地图上添加点击事件的功能。在实际应用中,可以根据需要扩展事件处理函数,实现更丰富的交互效果。
开发经验与收获:
未来拓展与优化: