大批量GPS坐标转百度坐标

时间:2022-09-05 11:26:46
一. 百度地图API大批量转换时有数量限制,一个一个转。
 用到的方法接口
   /**
     源坐标 格式:经度,纬度;经度,纬度… 最多支持100个;
     源坐标类型:默认为1,即GPS设备获取的坐标 ;
     目的坐标类型:默认为5,即bd09ll(百度坐标) ;
     返回结果格式 :json
    **/
 convertor.translate(pointArr, 1, 5, tranCallback);
 
  /**
  status:正常0,异常非0;(批量转换时需要判断)
  result :json或者xml数组 ;
  x  float  横坐标   ; y  float  纵坐标  
  **/
 tranCallback = function (result ) {}
 
相关代码
    var result = [];
var num = 0;
var sum = xList.length; //坐标转换完之后的回调函数 tranCallback = function (point) { result.push(point.points[0]); //一个个点转换的过程中记录已转换点的个数 num++; if (num == sum) { drawPolyline(); //在最后一次画线 } else { makeLine(); //循环坐标转换,并不画线 } } function makeLine() { var gpsPoint = new BMap.Point(xList[num], yList[num]); var convertor = new BMap.Convertor();
//方法参数必须是数组,一个一个转时需要数组pointArr = []占位,其输出永远为空;result则越来越多
var pointArr = []; pointArr.push(gpsPoint); convertor.translate(pointArr, 1, 5, tranCallback); } setTimeout(function () { makeLine(); }, 1000);

二.

web请求 
    System.Net.WebRequest HttpWebRequest=System.Net.WebRequest.Create("http://api.map.baidu.com/geocoder/v2/?ak=sAjKcQDFoSUGyxYKGhGd3UOo&coordtype=wgs84ll&location="+strLat+,"+strLong+"&output=xml&poi=0");