一. 百度地图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");