• 将百度坐标转换的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数组,第二个参数传入一个回调函数。

  • 相关阅读:
    两小时后执行打开浏览器的操作
    Markdown语法
    Python机器学习2.2
    身份证姓名与身份证号校验
    根据银行卡号获取开户行
    生成微信小程序二维码
    .net 生成二维码
    微信支付API V3(.Net Core)
    .net 生成项目xml描述文件
    汉字排序问题
  • 原文地址:https://www.cnblogs.com/dotafeiying/p/6950669.html
Copyright © 2020-2023  润新知