高德地图与GPS经纬度转换
来源:互联网 发布:数据采集卡型号 编辑:程序博客网 时间:2024/04/29 21:18
public class aMapToWGS { private final static double a=6378245.0; private final static double pi=3.14159265358979324; private final static double ee=0.00669342162296594626; //gcj-02 to wgs-84 public static LatLonPoint toWGS84Point(double latitude,double longitude){ LatLonPoint dev=calDev(latitude, longitude); double retLat = latitude-dev.getLatitude(); double retLon=longitude-dev.getLongitude(); dev=calDev(retLat, retLon); retLat=latitude-dev.getLatitude(); retLon=longitude-dev.getLongitude(); return new LatLonPoint(retLat, retLon); } //wsg84 to gcj02 public static LatLonPoint toGCJ02Piont(double latitude,double longitude){ LatLonPoint dev=calDev(latitude, longitude); double retLat = latitude-dev.getLatitude(); double retLon=longitude-dev.getLongitude(); return new LatLonPoint(retLat, retLon); } private static LatLonPoint calDev(double wgLat,double wgLon){ if(isOutofChina(wgLat,wgLon)){ return new LatLonPoint(0,0); } double dLat=calLat(wgLon-105.0,wgLat-35.0); double dLon=calLon(wgLon-105.0, wgLat-35.0); double radLat=wgLat/180.0*pi; double magic=Math.sin(radLat); magic=1-ee*magic*magic; double sqrtMagic=Math.sqrt(magic); dLat=(dLat*180.0)/((a*(1-ee))/(magic*sqrtMagic)*pi); dLon=(dLon*180.0)/(a/sqrtMagic*Math.cos(radLat)*pi); return new LatLonPoint(dLat,dLon); } private static double calLat(double x, double y) { double ret=-100.0+2.0*x+3.0*y+0.2*y*y+0.1*x*y+0.2*Math.sqrt(Math.abs(x)); ret +=(20.0*Math.sin(6.0*x*pi)+20.0*Math.sin(2.0*x*pi))*2.0/3.0; ret +=(20.0*Math.sin(y*pi)+40.0*Math.sin(y/3.0*pi))*2.0/3.0; ret +=(160.0*Math.sin(y/12.0*pi)+320*Math.sin(y*pi/30.0))*2.0/3.0; return ret; } private static double calLon(double x,double y){ double ret=300.0+x+2.0*y+0.1*x*x+0.1*x*y+0.1*Math.sqrt(Math.abs(x)); ret +=(20.0*Math.sin(6.0*x*pi)+20.0*Math.sin(2.0*x*pi))*2.0/3.0; ret +=(20.0*Math.sin(x*pi)+40.0*Math.sin(x/3.0*pi))*2.0/3.0; ret +=(150.0*Math.sin(x/12.0*pi)+300.0*Math.sin(x/30.0*pi))*2.0/3.0;; return ret; } private static boolean isOutofChina(double lat, double lon) { if(lon<72.004 || lon>137.8347){ return true; } if(lat<0.8293 || lat>55.8271){ return true; } return false; }}
阅读全文
0 0
- 高德地图与GPS经纬度转换
- 高德地图GPS经纬度转高德经纬度
- IOS将GPS定位经纬度转换为高德地图经纬度
- 高德地图地址和经纬度转换
- [Python]利用高德地图api实现经纬度与地址的批量转换
- Google地图百度地图GPS经纬度偏移转换(JAVA)
- Google地图百度地图GPS经纬度偏移转换(JAVA)
- Google地图百度地图GPS经纬度偏移转换(JAVA)
- Google地图百度地图GPS经纬度偏移转换(JAVA)
- 百度高德地图的经纬度转换问题
- 高德地图定位偏移以及经纬度之间的转换
- 高德地图经纬度纠偏
- android 百度地图 gps数据转换百度经纬度
- GPS\谷歌\AMAP等地图经纬度转换为百度地图经纬度
- 高德地图GPS应用
- Android code-工具类库-GPS、百度、高德、国测局、腾讯等经纬度坐标转换
- 将GPS坐标转换成百度地图坐标,将baidu 经纬度 转换为google经纬度
- 高德地图-Android-逆地理转换:经纬度转换成地址
- Error:Caused by: android.os.NetworkOnMainThreadException
- 工信部出手:统一国内 Android 推送标准
- C++:internal compiler error解决
- JDBC
- RedHat Enterprise Linux Server release 7 语言设置
- 高德地图与GPS经纬度转换
- eclipse下创建第一个spring boot项目
- 小波阈值去噪法基础理论
- oracle DB 笔记之转换函数(显示、隐式)示例
- C/C++读写二进制文件
- pl/sql developer job创建
- iOS
- 练习74
- Java的volatile变量