最近来了个需求,需要记录某个地址的百度经纬度和高德经纬度,之前的想法是只获取高德的经纬度,然后通过转换求出百度地图。经过多方查询资料,求得一份代码。
package maptransfer;
/**
* @className: BMapTransQQMapUtils
* @description: 各地图经纬度转换
* 西安大兴医院
* 高德:108.911883 34.288239 https://lbs.amap.com/tools/picker
* 百度:108.91839 34.294063
* 高德转百度:108.90593189476142 34.281603866249206
* 从测试结果来看,转换不靠谱
* @date: 2022/4/26
* @author: cakin
*/
public class BMapTransQQMapUtils {
// 将百度地图经纬度转换为腾讯/高德地图经纬度,用于大屏
public static LatLng bMapTransQQMap(LatLng latLng) {
double lat = latLng.latitude;
double lng = latLng.longitude;
double x_pi = 3.14159265358979324 * 3000.0 / 180.0;
double x = lng - 0.0065;
double 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);
double lngs = z * Math.cos(theta);
double lats = z * Math.sin(theta);
LatLng latLng1 = new LatLng(lats, lngs);
return latLng1;
}
// 将腾讯/高德地图经纬度转换为百度地图经纬度
public static LatLng qqMapTransBMap(LatLng latLng) {
double lat = latLng.latitude;
double lng = latLng.longitude;
double x_pi = 3.14159265358979324 * 3000.0 / 180.0;
double x = lng;
double y = lat;
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);
double lngs = z * Math.cos(theta) + 0.0065;
double lats = z * Math.sin(theta) + 0.006;
LatLng latLng1 = new LatLng(lats, lngs);
return latLng1;
}
public static void main(String[] args) {
LatLng latLng1 = new LatLng(108.911883, 34.288239); // 高德经纬度
LatLng latLng = BMapTransQQMapUtils.bMapTransQQMap(latLng1);// 百度的经纬度转化为高德
System.out.println("经度:" + latLng.latitude);
System.out.println("纬度:" + latLng.longitude);
}
}
class LatLng {
public double latitude;
public double longitude;
public LatLng(double latitude, double longitude) {
this.latitude = latitude;
this.longitude = longitude;
}
}
经度:108.90593189476142
纬度:34.281603866249206
用 西安大兴医院 进行查询。
查询网址:高德地图API
查询结果:108.911883,34.288239
查询网址:拾取坐标系统
查询结果:108.91839,34.294063
测试结果和实际存在误差,转换后的经纬度不准,如果将不准的经纬度用于百度,查出的各类信息也不准,所以靠谱的做法还是用谁的经纬度,就用谁的接口,不要想着转换图方便。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/chengqiuming/article/details/124421395
内容来源于网络,如有侵权,请联系作者删除!