将百度坐标转换的javascript api官方示例改写成传统的回调函数形式

Posted 杰哥要增肥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将百度坐标转换的javascript api官方示例改写成传统的回调函数形式相关的知识,希望对你有一定的参考价值。

改写前:

百度地图中坐标转换的JavaScript API示例官方示例如下:

var points = [new BMap.Point(116.3786889372559,39.90762965106183),
              new BMap.Point(116.38632786853032,39.90795884517671),
              new BMap.Point(116.39534009082035,39.907432133833574),
              new BMap.Point(116.40624058825688,39.90789300648029),
              new BMap.Point(116.41413701159672,39.90795884517671)
];

//地图初始化
var bm = new BMap.Map("allmap");
bm.centerAndZoom(new BMap.Point(116.378688937,39.9076296510), 15);

//坐标转换完之后的回调函数
translateCallback = function (data){
  if(data.status === 0) {
    for (var i = 0; i < data.points.length; i++) {
        bm.addOverlay(new BMap.Marker(data.points[i]));
        bm.setCenter(data.points[i]);
    }
  }
}
setTimeout(function(){
    var convertor = new BMap.Convertor();
    convertor.translate(points, 1, 5, translateCallback)
}, 1000);

改写后:

将上述代码改写为传统的javascript回调函数形式:

function translate(points,callback){
  var convertor=new BMap.Convertor();
  convertor.translate(points, 1, 5, callback)
  translateCallback = function (data){
    if(data.status === 0) {
      var res=[]; //res用来存放转换后的points数组
      for (var i = 0; i < data.points.length; i++) {
          bm.addOverlay(new BMap.Marker(data.points[i]));
          res.push(data.points[i]);
      }
      callback(res)
    }
  }
}

//再调用translate函数,
translate(points,function(data){
    console.log(data); //data为转换后的points数组
})

改写后translate函数接受两个参数,第一个参数为原始的百度points数组,第二个参数传入一个回调函数。

以上是关于将百度坐标转换的javascript api官方示例改写成传统的回调函数形式的主要内容,如果未能解决你的问题,请参考以下文章

最全面的百度地图JavaScript离线版开发

在百度地图api,经纬度怎么转换成百度坐标

百度地图API 批量坐标转换

PC端调用百度地图(自定义控件、高德坐标转百度坐标)

arcgis api for javascipt 加载天地图百度地图

关于百度地图API的地图坐标转换问题