在用户输入地址时,自动完成功能可以提供建议,帮助用户快速准确地找到目的地。此功能广泛应用于地图导航、搜索引擎和电子商务等领域。
本代码实现了百度地图的自动完成功能,当用户在输入框中输入地址时,系统会自动匹配并显示相关建议。用户可以从建议列表中选择一个地址,地图会自动定位到该地址并显示相关信息。
1. 引入百度地图 API 和插件
await Promise.all([
this.loadScripts([
// 加载百度地图 API 和插件脚本
]),
this.loadStyles([
// 加载百度地图 API 和插件样式表
]),
])
2. 创建百度地图实例
var map = new BMapGL.Map('l-map')
map.centerAndZoom('北京', 12) // 初始化地图,设置城市和地图级别。
3. 创建自动完成对象
var ac = new BMapGL.Autocomplete({
//建立一个自动完成的对象
input: 'suggestId',
location: map,
})
4. 监听自动完成事件
ac.addEventListener('onhighlight', function (e) {
//鼠标放在下拉列表上的事件
})
ac.addEventListener('onconfirm', function (e) {
//鼠标点击下拉列表后的事件
})
5. 根据用户选择定位地图
function setPlace() {
map.clearOverlays() //清除地图上所有覆盖物
function myFun() {
var pp = local.getResults().getPoi(0).point //获取第一个智能搜索的结果
map.centerAndZoom(pp, 18)
map.addOverlay(new BMapGL.Marker(pp)) //添加标注
}
var local = new BMapGL.LocalSearch(map, {
//智能搜索
onSearchComplete: myFun,
})
local.search(myValue)
}
开发过程中的经验与收获:
未来该卡片功能的拓展与优化: