1. 程式人生 > >將百度坐標轉換的javascript api官方示例改寫成傳統的回調函數形式

將百度坐標轉換的javascript api官方示例改寫成傳統的回調函數形式

logs 官方 原始的 targe add () blank api get

改寫前:

百度地圖中坐標轉換的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官方示例改寫成傳統的回調函數形式