需求

GPS是常见的定位硬件,当佩戴GPS时会提供经纬度数信息,需要将经纬度数转换成为坐标值来将佩戴GPS的用户或者车辆等投射到一个二维平面上。

方法

常见的经纬度转坐标值有墨卡托算法,米勒投影算法等,那么今天就来说一下这两种方法的实现。
首先还是来引入一下这两种算法吧,详情如下:
墨卡托算法:https://blog.csdn.net/ryfdizuo/article/details/20793669
米勒投影算法:
https://baike.baidu.com/item/%E5%A2%A8%E5%8D%A1%E6%89%98%E6%8A%95%E5%BD%B1/5477927?fr=aladdin

实现

相信大家都对这两种算法有了一个了解,那么接下来就用java代码来实现这两种算法:
墨卡托算法:

public class Coordinate{static double M_PI=Math.PI;//经纬度转墨卡托public static double[] lonLat2Mercator(double lon,double lat) {double[] xy = new double[2];double x = lon * 20037508.342789 / 180;double y = Math.log(Math.tan((90 + lat) * M_PI /360)) / (M_PI / 180);y = y * 20037508.34789 / 180;xy[0] = x;xy[1] = y;return xy;}public static void main(String[] args) {double[] num = lonLat2Mercator(120.385222,36.061416);System.out.println("("+num[0]+" , "+num[1]+")");}
}

米勒投影算法:

public static Map<String, Double> MillierConvertion(double lon, double lat) {double L = 6381372 * Math.PI * 2; //地球周长double W = L; //平面展开之后X周等于周长double H = L / 2; //Y轴等于周长的一半double mill = 2.3; //米勒投影的一个常数,范围大约在正负2.3之间double x = lon * Math.PI / 180; //将经度从度数转换为弧度double y = lat * Math.PI / 180; //将纬度从度数转换为弧度y = 1.25 * Math.log(Math.tan(0.25 * Math.PI + 0.4 * y));x = (W / 2) + (W / (2 * Math.PI)) * x;y = (H / 2) - (H / (2 * mill)) * y;//减去原点坐标  左下角//x=x-xlng;//y=y-ylat;Map<String, Double> map = new HashMap<>();map.put("x", x);map.put("y", y);System.out.println(map);return map;
}

扩展算法

当然,除了这两种算法之外还有其他算法,如Haversine公式等,大家可以参考:
https://www.jianshu.com/p/94f99d70c71d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

除了Java代码外,再补充上一个js的实现方式(不完全,核心代码):

function METERS_DEGLON(x)
{  with (Math){var d2r=DEG_TO_RADIANS(x);return((111415.13 * cos(d2r))- (94.55 * cos(3.0*d2r)) + (0.12 * cos(5.0*d2r)));}
}function METERS_DEGLAT(x)
{with (Math){var d2r=DEG_TO_RADIANS(x);return(111132.09 - (566.05 * cos(2.0*d2r))+ (1.20 * cos(4.0*d2r)) - (0.002 * cos(6.0*d2r)));}
}

上边的js代码是不完全的,如果想要有完整代码可以查看以下链接的审查元素:
https://scienceweb.whoi.edu/marine/ndsf/utility/NDSFutility.html

END

整理不易,如有帮助给个赞鼓励一下

Java_GPS经纬度转坐标相关推荐

  1. 经纬度和坐标之间怎么相互转换

    经纬度和坐标之间的相互转换 经纬度转坐标 代码 坐标转经纬度 经纬度转坐标 经纬度(Latitude and Longitude)和坐标(Cartesian coordinate system)之间的 ...

  2. 百度地图多个兴趣点(经纬度、坐标点)需要同时显示在地图上,如何设置自动缩放等级

    如果有多个兴趣点(经纬度.坐标点)需要同时显示在地图上,如何设置缩放比例.如果缩放太细,那么一个屏幕放不下,如果缩放太粗,显示就太密集.需要在程序中根据点的分布来设置. 百度地图Android SDK ...

  3. arcgis根据经纬度xyz坐标点生成等高线

    arcgis根据经纬度xyz坐标点生成等高线 1.Excel to table 2.display X Y Data 3.Create TIN 4.生成DEM数据. 5.生成等高线. 有些小伙伴会说, ...

  4. cesium 经纬度绘制点_Cesium经纬度与坐标的问题

    ##数据预处理 1. 源数据坐标系通常为二维平面坐标系,通过设置投影坐标(通常为高斯克吕格投影,按实际位置选择正确分带)使其可进行后续操作. 2. 投影坐标是实际位置在平面上投影后的坐标,获得其正确位 ...

  5. 道格拉斯-普克算法(经纬度或坐标点抽稀)

    起因 最近在做一个车联网项目,有一个场景是车辆定时上报当前所在经纬度等位置信息上报给平台,平台通过web页面在高德地图上展示车辆行驶路径. 由于车辆上报规则是每隔4s上报一次,一个小时也就是900个点 ...

  6. Python(arcpy) 根据站点经纬度(坐标)批量提取对应格点值

    任务描述:我有站点的点shp文件,想从遥感降水产品中批量提取出站点所在栅格的值→ 多个站点+多幅图像的批量提取 #-*- coding: UTF-8 -*- ''' 这篇代码是用于根据站点的shp文件 ...

  7. WGS84经纬度坐标转北京54高斯投影地方坐标流程

    坐标系统之间的坐标转换既包括不同的参心坐标之间的转换,或者不同的地心坐标系之间的转换,也包括参心坐标系与地心坐标系之间的转换以及相同坐标系的直角坐标与大地坐标之间的坐标转换,还有大地坐标与高斯平面坐标 ...

  8. 已知点的经纬度坐标计算/读取DEM高程信息/海拔高度

    已知点的经纬度坐标计算/读取DEM高程信息/海拔高度 思路 环境 依赖 安装GDAL 安装依赖包 测试GDAL 数据依赖 python代码 参考 思路 实现条件 1.GDAL库 2.DEM数据 开发语 ...

  9. java 根据经纬度坐标查询出来附近店铺

    @Override public CommonResult selectshopnear(double dis, double longitude,double latitude) {//先计算查询点 ...

  10. WGS84经纬度坐标到北京54高斯投影坐标的转换

    张兢1 王文瑞2 陈溪1 (1.广西第一测绘院 广西南宁 530023: 2.南宁市勘测院 广西南宁 530022) [摘 要] 本文针对从事测绘工作者普遍遇到的坐标转换问题,简要介绍ArcGIS实现 ...

最新文章

  1. overflow超出显示_[CSS]text-overflow: ellipsis;什么时候可能不生效?
  2. 请求的安全信息不可用或无法显示
  3. Drools Guvnor –管理访问
  4. 转载 树莓派vnc 教程
  5. LA 3882 And Then There Was One
  6. Ubuntu 10.10 安装新版 Ubuntu One 客户端
  7. VMware虚拟机安装Windows 7
  8. Markdown 语法支持测试
  9. 有哪些免费的软件资源分享网站,软件资源网站大全导航
  10. k8s+docker集群整合搭建(完整版)
  11. c语言遍历文件内容_跨平台的C语言网络框架库acl
  12. 定时器 setTimeout(),setInterval() 清除定时器
  13. 360搜索、UC浏览器等被3·15点名应用已下架;马斯克宣布通过NFT卖歌;美团App再发力社交,内测 “群聊”功能...
  14. 解决vue + elementUI 渲染图片问题
  15. 用python画一只小狗
  16. 基于3D CNN的深度学习卫星图像土地覆盖分类
  17. Android Studio 亲感受之org.jdom.JDOMException: java.lang.ClassNotFoundException: org.jdom.xpath.JaxenXPa
  18. 10款常见的Webshell检测工具
  19. Modern C++ 学习笔记——C++函数式编程
  20. 程序员必读经典书籍和成长路线

热门文章

  1. RuntimeError: Exporting the operator var to ONNX opset version 11 is not supported. Please open a bu
  2. Java —— EJB 到底是什么
  3. 筑牢梅雨季用电“安全网”
  4. 丹佛斯变频器al14故障代码_丹佛斯变频器故障说明
  5. 关于民族的数据库表设计
  6. Java文件上传【通用】
  7. 企业微信打标签功能在企鲸客SCRM管理系统里面的作用
  8. html5 fa图标库,轻松学会在项目中使用fontawesome字体图标
  9. 【个人专用入门级】LAMP一键安装包
  10. 在WIN10中安装经典计算器