React 中嵌入百度地图API,在做地址转换时,回调函数不执行

新手上路,请多包涵

React 中嵌入百度地图API,在做地址转换时,回调函数不执行;
百度地图API是通过动态加载到head中的;已尝试方法如下:
1、在React中写入官方示例也没有效果,回调函数依然不执行;http://lbsyun.baidu.com/jsdem...

2、在React中导入convertor.js文件,转换的结果不对,且该文件是11年写的,估计已过时;
http://developer.baidu.com/map/jsdemo/demo/convertor.js

还请各位大神帮忙解答下,感谢!以下是在react中写的代码

  componentDidMount() {
        const script = document.createElement("script");
        script.src = "http://api.map.baidu.com/api?v=2&ak=我的key";
        script.type = "text/javascript";
        document.head.appendChild(script);
        window.onLoad = function () {
            var x = 116.32715863448607;
            var y = 39.990912172420714;
            var ggPoint = new BMap.Point(x,y);
        
            //地图初始化
            var bm = new BMap.Map("map");
            bm.centerAndZoom(ggPoint, 15);
            bm.addControl(new BMap.NavigationControl());
        
            //添加谷歌marker和label
            var markergg = new BMap.Marker(ggPoint);
            bm.addOverlay(markergg); //添加谷歌marker
            var labelgg = new BMap.Label("未转换的谷歌标注(错误)",{offset:new BMap.Size(20,-10)});
            markergg.setLabel(labelgg); //添加谷歌label
        
            //坐标转换完之后的回调函数
        
            setTimeout(function(){
                
                var pointArr = [];
                pointArr.push(ggPoint);
                new BMap.Convertor().translate(pointArr, 3, 5, function (data){
                    if(data.status === 0) {
                      var marker = new BMap.Marker(data.points[0]);
                      bm.addOverlay(marker);
                      var label = new BMap.Label("转换后的百度标注(正确)",{offset:new BMap.Size(20,-10)});
                      marker.setLabel(label); //添加百度label
                      bm.setCenter(data.points[0]);
                    }
                  })
            }, 1000);
        }
    }
阅读 3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏