日期:2014-05-16  浏览次数:20454 次

js调用百度API,GPS经纬度转换成百度地图经纬度,用BMap.Convertor.translate不能及时转换问题,求大神帮忙。
从数据库取GPS点,转换成百度地图经纬度,然后描点连线。
以下代码一共有两点问题:
1、数据库点的顺序是不变的,但是通过回调函数之后PointArr中的数据顺序是随机的。
2、setTimeout函数不起作用,所有的点都是一起出现,没有模拟轨迹的。
   
//调用部分 
 function makeLine() {   
 for (var i = 0; i <= Array.length - 1; i += 2) {//偶数索引存经度,奇数存维度  
            var gpsPoint=new BMap.Point(Array[i], Array[i + 1]);
            //GPS转百度
            BMap.Convertor.translate(gpsPoint,0,translateCallback);
            } 
}
     translateCallback = function (point){
     
           PointArr.push(point);
           setTimeout("makepoly()", 1000);
        }
       function makepoly() {
          //大于总数,返回
           if(num>=total_num){
           return;
           }
            //第一个点不画线只描点
           if(num==0){
             //alert(num);
             var markergps = new BMap.Marker(PointArr[0]);
             map.addOverlay(markergps);
             num++;
             
           }
           else{
               //alert(num);
               var polyline = new BMap.Polyline([PointArr[num - 1], PointArr[num]], { strokeColor: "blue", strokeWeight: 3, strokeOpacity: 0.5 });  //定义折线
               map.addOverlay(polyline);   //添加折线到地图上
               var markergps = new BMap.Marker(PointArr[num]);
               map.addOverlay(markergps);
               num++;
           }
       }

求各位大神帮帮忙,小弟不胜感激!
js GPS转百度地图 百度地图轨迹 Convertor.trans