算法网上转载,代码自己码的

public class MapUtil {private static final double x_pi = 3.14159265358979324 * 3000.0 / 180.0;//    πprivate static final double pi = 3.1415926535897932384626;//    长半轴private static final double a = 6378245.0;//    扁率private static final double ee = 0.00669342162296594323;/*** gg_lon 经度* gg_lat 纬度* GCJ-02转换BD-09* Google地图经纬度转百度地图经纬度**/public static double[] gcj02tobd09(double gg_lon,double gg_lat){double x = gg_lon, y = gg_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 bd_lon = z * Math.cos(theta) + 0.0065;double bd_lat = z * Math.sin(theta) + 0.006;double[] point={bd_lon,bd_lat};return point;}/*** wgLon 经度* wgLat 纬度* BD-09转换GCJ-02* 百度转google**/public static double[] bd09togcj02(double bd_lon,double bd_lat){double x = bd_lon - 0.0065, y = bd_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 gg_lon = z * Math.cos(theta);double gg_lat = z * Math.sin(theta);double[] point={gg_lon,gg_lat};return point;}/*** GCJ02(火星坐标系)转GPS84* @param lng:火星坐标系的经度* @param  lat:火星坐标系纬度* @return*/public static double[] gcj02towgs84(double lng,double lat){if ((lng < 72.004 || lng > 137.8347)||(lat < 0.8293 || lat > 55.8271)){double[] point={lng,lat};return point;}else {double  dlat = transformlat(lng - 105.0, lat - 35.0);double dlng = transformlng(lng - 105.0, lat - 35.0);double  radlat = lat / 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);dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * pi);double mglat = lat + dlat;double mglng = lng + dlng;double[] points={(lng * 2 - mglng),(lat * 2 - mglat)};return points;}}/*** WGS84转GCJ02(火星坐标系)* @param lng: WGS84坐标系的经度* @param lat:WGS84坐标系的纬度* @return*/public static double[] wgs84togcj02(double lng,double lat){if ((lng < 72.004 || lng > 137.8347)||(lat < 0.8293 || lat > 55.8271)){double[] point={lng,lat};return point;}else {double dlat = transformlat(lng - 105.0, lat - 35.0);double dlng = transformlng(lng - 105.0, lat - 35.0);double radlat = lat / 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);dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * pi);double mglat = lat + dlat;double mglng = lng + dlng;double[] points={mglng,mglat};return points;}}public static double transformlat(double lng, double lat){double ret;ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));ret += (20.0 * Math.sin(6.0 * lng * pi) + 20.0 * Math.sin(2.0 * lng * pi)) * 2.0 / 3.0;ret += (20.0 * Math.sin(lat * pi) + 40.0 * Math.sin(lat / 3.0 * pi)) * 2.0 / 3.0;ret += (160.0 * Math.sin(lat / 12.0 * pi) + 320 * Math.sin(lat * pi / 30.0)) * 2.0 / 3.0;return ret;}public static double transformlng(double lng, double lat){double ret;ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));ret += (20.0 * Math.sin(6.0 * lng * pi) + 20.0 * Math.sin(2.0 * lng * pi)) * 2.0 / 3.0;ret += (20.0 * Math.sin(lng * pi) + 40.0 * Math.sin(lng / 3.0 * pi)) * 2.0 / 3.0;ret += (150.0 * Math.sin(lng / 12.0 * pi) + 300.0 * Math.sin(lng / 30.0 * pi)) * 2.0 / 3.0;return ret;}public static void main(String[] args) {double[] point= bd09togcj02(114.409961,30.476625);double[] point1= gcj02towgs84(point[0],point[1]);System.out.println("GCJ02坐标系---"+point[0]);System.out.println("GCJ02坐标系---"+point[1]);System.out.println("WGS84坐标系---"+point1[0]);System.out.println("WGS84坐标系---"+point1[1]);double[] baidu={114.407131,30.479309};System.out.println(wgs84togcj02(baidu[0],baidu[1])[0]+"---"+wgs84togcj02(baidu[0],baidu[1])[1]);System.out.println(gcj02tobd09(wgs84togcj02(baidu[0],baidu[1])[0],wgs84togcj02(baidu[0],baidu[1])[1])[0]+"---"+gcj02tobd09(wgs84togcj02(baidu[0],baidu[1])[0],wgs84togcj02(baidu[0],baidu[1])[1])[1]);}
}

百度地图和谷歌地图经纬度互转相关推荐

  1. 百度地图与谷歌地图 (常识、区别,更倾向于使用百度地图,纠错信息比谷歌多)...

    一. 获取当前地理位置信息的方法 在HTML5之前 HTML5   根据IP地址来获取当前的地理位置信息 浏览器通过geolocation的API接口来获取当前的地理位置信息,(经纬度)   方法为 ...

  2. iOS 应用内跳转到百度地图、苹果地图、谷歌地图、高德地图等

    最近在做导航,所以把自己找到的资料总结一下! 无论是百度地图.高德地图.谷歌地图还是腾讯地图它们都有自己的SDK,我们只需要在自己的工程中导入SDK并查看相应的官方文档,基本上就可以实现导航.但是这样 ...

  3. Windows Store Javascript项目使用高德地图、谷歌地图、百度地图API

    Windows Store Javascript项目使用高德地图.谷歌地图.百度地图API 原文 Windows Store Javascript项目使用高德地图.谷歌地图.百度地图API 在Win8 ...

  4. 在百度地图或谷歌地图给中国各省着色并高亮显示

    最近有朋友需要在百度地图中给各省按不同颜色显示,先上效果图: 原理就是获取各省的边界坐标,然后在地图上面用不颜色的覆盖物Polygon,百度地图和谷歌地图都有同样的Polygon类. 百度地图的API ...

  5. 百度地图、高德地图、谷歌地图离线瓦片下载研究(一)

    百度地图.高德地图.谷歌地图离线瓦片下载研究(一) 背景 最近公司一个项目用到百度api在线调用百度地图.但是后来客户提出项目需要部署在内网,希望调用离线地图.公司不想再投入资金购买地图数据.网上一些 ...

  6. Android 中使用地图加载wms服务(高德地图,谷歌地图,天地图)

    转载请注明出处:http://blog.csdn.net/zkjthinking/article/details/77278838 由于公司需求需要在移动平台上加载自己发布的wms 服务: 高德地图加 ...

  7. react 谷歌地图_谷歌地图与React

    react 谷歌地图 情况(The Situation) Your working on a React-based application and you want to implement Goo ...

  8. 雅虎地图与谷歌地图坐标_打开Yahoo! 将与Google玩得很好,不竞争

    雅虎地图与谷歌地图坐标 Much has been made today about Yahoo!'s Open Strategy, which Yahoo! describes as a way t ...

  9. 雅虎地图与谷歌地图坐标_雅虎! BOSS:现在对Google确实有好处

    雅虎地图与谷歌地图坐标 Yahoo! today pushed out a major update to its Build Your Own Search Service (BOSS). Whil ...

  10. 雅虎地图与谷歌地图坐标_为什么Google会击败Yahoo! 在网络托管大战中

    雅虎地图与谷歌地图坐标 The mighty (and now public) juggernaut that is Google is emerging as the most formidable ...

最新文章

  1. struct.error: ushort format requires 0 <= number <= 0xffff
  2. malloc()/free()的实现
  3. 核磁共振波谱分析_实验室各种仪器原理动图剖析,这么多分析仪器原理,1次搞清楚了...
  4. parted--大于2T的分区工具
  5. Ionic Cordova 环境配置window
  6. windows系统下修改mysql时区_Linux与Windows下修改MySql时区的方法
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的二手书交易系统
  8. java系列3:数组初始化(基本格式)
  9. [导入]CommunityServer 1.1 源码及汉化文件
  10. 2019 必看 Android 高级面试题总结
  11. virtual studio 2017 配置vistual assist激活
  12. Vivado HLS教程
  13. MyBatis-18MyBatis代码生成器-Example讲解
  14. CTF .swp文件泄露 MD5扩展攻击 [What is hash!]
  15. 1.[Sprd]-(Sprd9820e安卓4.4平台user版开启长按power键开启sysdump分析)
  16. Chapter 6-Blurring Things Up之Depth Imposter
  17. 如何制作Android.9图片
  18. Python给手机发通知
  19. java(Vue+SpringBoot)实现头像上传功能
  20. Application Cache is a Douchebag

热门文章

  1. hdu 2122 最小生成树
  2. struts2 ognl.OgnlException: target is null for setProperty(null, pageNO, [Ljava.lang.String;@c3bb57)
  3. C语言三种形式编九九乘法表,C语言九九乘法表(五种输出形式)
  4. BP神经网络简单应用实例,bp神经网络应用举例
  5. wpa_supplicant详解
  6. 编译安装wpa_supplicant
  7. 双基因突变患者_我的肺癌没有基因突变,这是好是坏?
  8. 怎么让代码的逻辑更清晰?
  9. 实现导出excel,pdf功能
  10. AngularJs中input uib-typeahead 搜索加自动补全 注意点