但是同一个位置 谷歌定位和 百度定位的经纬度是不一样的。好像是因为有什么偏移量的计算吧
像百度提供的这个工具 http://dev.baidu.com/wiki/static/map/API/examples/?v=1.3&0_6#0&6但是貌似没有Android上的转换,所以比较头疼。

解决方案 »

  1.   


    //2011-7-25
    (function(){        //�
    function load_script(xyUrl, callback){
        var head = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = xyUrl;
        //t唈Query剆cript柽拐
        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){
        var callbackName = 'cbk_' + Math.round(Math.random() * 10000);    //�:齪    var xyUrl = "http://api.map.baidu.com/ag/coord/convert?from="+ type + "&to=4&x=" + point.lng + "&y=" + point.lat + "&callback=BMap.Convertor." + callbackName;
        //�鷖cript~
        load_script(xyUrl);
        BMap.Convertor[callbackName] = function(xyResult){
            delete BMap.Convertor[callbackName];    //(��� d9齪
            var point = new BMap.Point(xyResult.x, xyResult.y);
            callback && callback(point);
        }
    }window.BMap = window.BMap || {};
    BMap.Convertor = {};
    BMap.Convertor.translate = translate;
    })();这是你给的网页中对应的js部分,主要用到的translate函数如上,是发请求来转换的,参照可以自己来写了吧?
      

  2.   

    还应该加上这几句话:var ggPoint = new BMap.Point(x,y);
    BMap.Convertor.translate(ggPoint,2,translateCallback);至于BMap.Point的定义还没有找到的说...
      

  3.   

    非常感谢哈。我是在Android平台上开发的,不过 最主要部分,就是给 那个Url发请求。
      

  4.   

    哎,其实Android上 有一个非常简单的方法,只是百度Api里没写。
      

  5.   

    不就是从http://api.map.baidu.com/ag/coord/convert这个链接得到转换的加密坐标然后通过Base64解码么,真不知道楼主哪来这么高的成就感.告诉别人怎么回事都不肯... 强烈鄙视
      

  6.   


    哈哈,就是,他不写,我写出来;将其他坐标系转换到百度坐标系。接口样例如下:
    http://api.map.baidu.com/ag/coord/convert?from=2&to=4&x=116.254615&y=29.814476
    参数说明:
    x/y:经纬度坐标
    from/to:决定转换效果,具体参 数天填充如下:
    from=2表示谷歌
    from=0表示gps
    to=4 表示百度
      

  7.   

    返回回来的是{"error":0,"x":"MTE2LjI2MTA5OTEyMjE=","y":"MjkuODIwNTYwODc0ODQ2"}
    这样的json,用base64可以解,但是得到的结果偏差很大,
    这方面怎么解决呢?
    因为不在想在开发中穿插js,所以希望有别的方式解决~望达人们赐教
      

  8.   

    我也遇到了这个问题,去百度地图找了一下,据说在这里http://developer.baidu.com/map/help_move.html申请坐标迁移,工作人员1-3个工作日回复,我正在等待答复