gps坐标转换成百度坐标显示路线图

之前有接触过一个项目,大致要求是有一系列GPS坐标(有时间顺序),要求在百度地图上标记出这些点,画出轨迹图。

首先有一点要明确,百度地图上的GPS坐标(百度坐标)是对原始GPS坐标经过一些计算后得到的,所以我们如果想要在百度地图上正确描绘我们所需要的点,我们必须先将手上的GPS坐标转换成百度地图的坐标,再通过new BMap.Point(lng,lat)去添加标记点。转换成百度坐标需要用到BMap.Convertor.translate(gpsPoint,0,translateCallback)函数,需要引用<script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>。

由于坐标转换translate函数执行是一个异步的过程,我们无法控制它的执行顺序,所以在对一系列坐标同时进行处理时,无法按照我们想要的顺序在回调函数中对数据进行处理,这里必须对translate函数做一些改进,其实一个标志位就足够了。下面贴出改进后的convertor.js代码。

(function(){        //闭包
function load_script(xyUrl, callback){
    var head = document.getElementsByTagName('head')[0];
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = xyUrl;
    //借鉴了jQuery的script跨域方法
    script.onload = script.onreadystatechange = function(){
        if((!this.readyState || this.readyState === "loaded" || this.readyState === "complete")){
            callback && callback();
            // Handle memory leak in IE
            script.onload = script.onreadystatechange = null;
            if ( head && script.parentNode ) {
                head.removeChild( script );
            }
        }
    };
    // Use insertBefore instead of appendChild  to circumvent an IE6 bug.
    head.insertBefore( script, head.firstChild );
}
function translate(point,type,callback,X){
    var callbackName = 'cbk_' + Math.round(M
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值