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