本代码展示了如何使用百度地图 API 来获取覆盖物(点和圆)的属性信息。该功能可用于地图管理、数据分析和用户交互等场景。
此代码实现了以下功能:
1. 加载必要的脚本和样式
async mounted() {
await Promise.all([
this.loadScripts([
// 加载百度地图 API 和相关的库
]),
this.loadStyles([
// 加载地图样式
]),
])
}
2. 创建地图对象
var map = new BMapGL.Map('container')
map.centerAndZoom(new BMapGL.Point(116.404, 39.915), 15)
3. 创建覆盖物
// 创建点覆盖物
var marker = new BMapGL.Marker(new BMapGL.Point(116.404, 39.915))
map.addOverlay(marker)
// 创建圆覆盖物
var circle = new BMapGL.Circle(
new BMapGL.Point(116.415157, 39.914004),
500,
{
strokeColor: 'blue',
strokeWeight: 6,
strokeOpacity: 0.5,
},
)
map.addOverlay(circle)
4. 添加覆盖物点击事件
marker.addEventListener('click', overlayStyle)
circle.addEventListener('click', overlayStyle)
5. 获取覆盖物属性
function overlayStyle(e) {
var p = e.target
if (p instanceof BMapGL.Marker) {
alert(
'该覆盖物是点,点的坐标为:' +
p.getPosition().lng +
',' +
p.getPosition().lat,
)
} else if (p instanceof BMapGL.Circle) {
alert(
'该覆盖物是圆,其半径为:' +
p.getRadius() +
'圆中心点坐标:' +
p.getCenter().lng +
',' +
p.getCenter().lat,
)
} else {
alert('无法获知该覆盖物类型')
}
}
开发这段代码的过程让我对百度地图 API 的覆盖物管理有了更深入的了解。它可以帮助我们创建丰富的地图交互体验,满足不同的业务需求。
未来,该功能可以进一步拓展和优化,例如: