vue使用百度地图API查询地点信息和位置展示
使用百度地图查询地址
首先申请一个 ak,详情点击这里
之后根据官方文档我们调用如下接口
https://api.map.baidu.com/place/v2/search?query=中南大学湘雅医院®ion=全国&output=json&ak=您的ak //GET请求
调用成功后返回的数据如下
{
"status":0,
"message":"ok",
"result_type":"poi_type",
"results":[
{
"name":"中南大学湘雅医院",
"location":{
"lat":28.217917,
"lng":112.991041
},
"address":"长沙市开福区湘雅路87号",
"province":"湖南省",
"city":"长沙市",
"area":"开福区",
"street_id":"a5ef680f314baaceb8df8fb0",
"telephone":"(0731)89753999",
"detail":1,
"uid":"a5ef680f314baaceb8df8fb0"
},
]
}
我们还可以根据经纬度来获取在地图上显示出来,这里引入第三方插件 vue-baidu-map
$ npm install vue-baidu-map --save
然后在 main.js
中全局注册
import Vue from 'vue'
import BaiduMap from 'vue-baidu-map'
Vue.use(BaiduMap, {
// ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */
ak: 'YOUR_APP_KEY'
})
然后封装一个展示地图组件
- center 设置中心经纬度
- zoom 设置缩放等级
- scroll-wheel-zoom 设置鼠标可缩放地图
<template>
<baidu-map
class="map"
:center="{ lng: lng, lat: lat }"
:zoom="15"
:scroll-wheel-zoom="true"
>
<bm-marker
:position="{ lng: lng, lat: lat }"
:dragging="true"
animation="BMAP_ANIMATION_BOUNCE"
>
</bm-marker>
</baidu-map>
</template>
<script>
export default {
data() {
return {
lng: 116.404,
lat: 39.915,
}
},
methods: {
setLoacl(lng, lat) {
this.lng = lng
this.lat = lat
},
},
}
</script>
<style>
.map {
margin-top: 20px;
width: 100%;
height: 300px;
}
</style>
在页面中使用封装好的组件,只需要调用组件中的 setLoacl
方法,传入经纬度即可展示该位置信息
<div>
<Map ref="map"></Map>
</div>
<script>
import Map from './component/Map.vue'
export default {
components: {
Map,
},
methods: {
lookMap(row) {
this.$refs.map.setLoacl(row.location.lng, row.location.lat)
},
},
}
</script>
示例
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具