该代码用于实现基于百度地图API的圆形范围检索功能,可在给定地图中心点和半径的情况下,在指定范围内检索特定类型的兴趣点(POI),并在地图上以标记的形式展示检索结果。
await Promise.all([
this.loadScripts([
'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',
]),
])
var map = new BMapGL.Map('container') // 创建Map实例
var mPoint = new BMapGL.Point(116.404, 39.915)
map.enableScrollWheelZoom()
map.centerAndZoom(mPoint, 15)
var circle = new BMapGL.Circle(mPoint, 1000, {
fillColor: 'blue',
strokeWeight: 1,
fillOpacity: 0.3,
strokeOpacity: 0.3,
})
map.addOverlay(circle)
var local = new BMapGL.LocalSearch(map, {
renderOptions: { map: map, autoViewport: false },
})
local.searchNearby('餐馆', mPoint, 1000)
本地搜索完成后,会触发回调函数,将检索到的POI以标记的形式展示在地图上。
通过这段代码,我们实现了基于百度地图API的圆形范围检索功能。该功能可以应用于各种场景,如附近餐馆搜索、周边景点查询等。
未来,可以对该功能进行拓展和优化,例如: