前端如何实现高德地图搜索位置之后弹出相应的位置信息框
时间: 2024-03-03 18:52:55 浏览: 25
实现高德地图搜索位置之后弹出相应的位置信息框,可以通过以下步骤实现:
1. 在页面中引入高德地图 JavaScript API。
2. 创建地图实例,并设置地图的中心点和缩放级别。
3. 创建一个搜索框,让用户输入关键词进行搜索。
4. 当用户输入关键词并点击搜索按钮时,调用高德地图的搜索服务,返回搜索结果。
5. 遍历搜索结果,将每个结果在地图上标记出来,并添加点击事件。
6. 当用户点击标记时,获取该标记对应的位置信息,并在地图上弹出相应的信息框。
下面是一个简单的示例代码:
```javascript
// 初始化地图
var map = new AMap.Map('map-container', {
center: [116.397428, 39.90923],
zoom: 13
});
// 创建搜索框
var searchBox = new AMap.PlaceSearch({
map: map
});
// 监听搜索按钮点击事件
document.getElementById('search-btn').addEventListener('click', function() {
var keywords = document.getElementById('keywords').value;
searchBox.search(keywords, function(status, result) {
if (status === 'complete' && result.info === 'OK') {
// 遍历搜索结果,添加标记并绑定点击事件
for (var i = 0, len = result.poiList.pois.length; i < len; i++) {
var marker = new AMap.Marker({
position: result.poiList.pois[i].location,
map: map
});
marker.content = result.poiList.pois[i].name;
marker.on('click', function(e) {
var infoWindow = new AMap.InfoWindow({
content: e.target.content,
offset: new AMap.Pixel(0, -30)
});
infoWindow.open(map, e.target.getPosition());
});
}
}
});
});
```
在上面的示例代码中,我们通过 AMap.PlaceSearch 对象来进行地图搜索,并使用 AMap.Marker 对象在地图上标记出搜索结果。当用户点击标记时,我们使用 AMap.InfoWindow 对象在地图上弹出相应的信息框。