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);
            }
        }
    

Log in to reply