实现目的:将百度地图经纬度 转换到 腾讯地图/Google 对应的经纬度.
方法1:使用代码进行转换
存在的问题:转换之后误差大,基本不可用
public static void Convert_BD09_To_GCJ02(double lat, double lng) {
double x_pi = Math. PI * 3000.0 / 180.0;
double x = lng - 0.0065, y = lat - 0.006;
double z = Math. sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
lng = z * Math. cos(theta );
lat = z * Math. sin(theta );
System. out.println(lng);
System. out.println(lat);
}
方法2:
该网站提供转换服务,坐标较为准确,可用,后台调用没有仔细研究
http://www.minigps.net/convert.html
方法3:
使用腾讯地图,详见1.html
腾讯地图老版的地址:http://api.map.soso.com/doc_v2/example.html?sample-convertor-library#12map
最新的地址:http://lbs.qq.com/javascript_v2/doc/convertor.html
直接调用的地址<百度地图转为腾讯地图>,points=经纬度,传入百度的即可:
http://apic.map.qq.com/translate/?type=3&points=114.041993,22.667204&output=jsonp&pf=jsapi&cb=qq.maps.__svcbi1x9al56.cbi1x9al9l0
坐标查询地址:
http://api.map.baidu.com/lbsapi/getpoint/
http://lbs.qq.com/javascript_v2/case-run.html#sample-geocoding-reverse
总结:
由于腾讯的经纬度和google经纬度是同一个坐标系,百度经纬度为自己的体系,目前网上搜索到的算法代码,都不是十分精确,所以建议使用地图开发方提供的Api进行转换.
您可能感兴趣的文章:Golang如何实现任意进制转换的方法示例Go语言string,int,int64 ,float之间类型转换方法java操作mongodb时,对象bean和DBObject相互转换的方法(推荐)golang实现unicode转换为字符串string的方法python将MongoDB里的ObjectId转换为时间戳的方法Go语言转换所有字符串为大写或者小写的方法GO语言类型转换和类型断言实例分析Go语言中转换JSON数据简单例子go语言中int和byte转换方式