奈月奇 2022-06-21 04:31 采纳率: 0%
浏览 1473
已结题

angular 百度地图Cannot read properties of undefined (reading 'addOverlay')报错

问题遇到的现象和发生背景

1.本人人使用的angular
2.本人在调用百度api后Ts文件下的自定义函数中调用this.map.addOverlay(markerMouse);
提示报错Cannot read properties of undefined (reading 'addOverlay')

问题相关代码,请勿粘贴截图

map = new BMap.Map('map');//创建地图实例
ngOnInit(): void {
this. map = new BMap.Map("map");
var point = new BMap.Point(116.407, 39.915);//创建点坐标
this.map.centerAndZoom(point, 15);//初始化地图,设置中心点坐标和地图级别
this.map.addOverlay(116.407, 39.915);
}

addSign() { //这里是在html中按钮监听,当点击时提示可以开始了
alert("请开始在地图上点击添加点")
this.map.addEventListener('click',this.handleClick)
}

handleClick (e:any)
{
alert('点击的经纬度:' + e.point.lng + ', ' + e.point.lat)
var point = new BMap.Point(e);
var markerMouse = new BMap.Point(point );//创建点坐标
this.map.addOverlay(markerMouse); //问题
}

运行结果及报错内容

Cannot read properties of undefined (reading 'addOverlay')

我想要达到的结果

当我点击按钮后,提示开始了,在地图上点击获取坐标并在座标出创建一个点。

  • 写回答

1条回答 默认 最新

  • 崽崽的谷雨 2022-06-21 08:28
    关注

    js 语法错误 说明this.map 里没有 addOverlay 的函数 。 你打印一下看看 。

    可以加个非空判断
    if(this.map&&this.map.addOverlay){
    this.map.addOverlay()
    }

    评论 编辑记录
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月10日
  • 创建了问题 6月21日