java经纬度格式_java经纬度格式转换

在数学中,表示角度的度、分、秒分别使用°、′、″符号进行表示。

1°=60′,1′=60″ ,1°=3600″。

由上述可知度分秒转换度的计算公式为:(dd°mm′ss″) dd+mm/60+ss/3600

如:

113°30′10.25″ = 113+30/60+10.25/3600 ≈113.502847

度分秒转度

/**

* 经纬度转换 ,度分秒转度

* @param str

* @author Cai_YF

* @return

*/

public static String Dms2D(String jwd){

if(StringUtil.isNotEmpty(jwd)&&(jwd.contains("°"))){//如果不为空并且存在度单位

//计算前进行数据处理

jwd = jwd.replace("E", "").replace("N", "").replace(":", "").replace(":", "");

double d=0,m=0,s=0;

d = Double.parseDouble(jwd.split("°")[0]);

//不同单位的分,可扩展

if(jwd.contains("′")){//正常的′

m = Double.parseDouble(jwd.split("°")[1].split("′")[0]);

}else if(jwd.contains("'")){//特殊的'

m = Double.parseDouble(jwd.split("°")[1].split("'")[0]);

}

//不同单位的秒,可扩展

if(jwd.contains("″")){//正常的″

//有时候没有分 如:112°10.25″

s = jwd.contains("′")?Double.parseDouble(jwd.split("′")[1].split("″")[0]):Double.parseDouble(jwd.split("°")[1].split("″")[0]);

}else if(jwd.contains("''")){//特殊的''

//有时候没有分 如:112°10.25''

s = jwd.contains("'")?Double.parseDouble(jwd.split("'")[1].split("''")[0]):Double.parseDouble(jwd.split("°")[1].split("''")[0]);

}

jwd = String.valueOf(d+m/60+s/60/60);//计算并转换为string

//使用BigDecimal进行加减乘除

/*BigDecimal bd = new BigDecimal("60");

BigDecimal d = new BigDecimal(jwd.contains("°")?jwd.split("°")[0]:"0");

BigDecimal m = new BigDecimal(jwd.contains("′")?jwd.split("°")[1].split("′")[0]:"0");

BigDecimal s = new BigDecimal(jwd.contains("″")?jwd.split("′")[1].split("″")[0]:"0");

//divide相除可能会报错(无限循环小数),要设置保留小数点

jwd = String.valueOf(d.add(m.divide(bd,6,BigDecimal.ROUND_HALF_UP)

.add(s.divide(bd.multiply(bd),6,BigDecimal.ROUND_HALF_UP))));*/

}

return jwd;

}

运行结果

2b6b065fe3d1e55d70cb2478f32aefe3.png

度分转度

/**

* 十进制经纬度转换 ddd°mm.mmmm 转 ddd.ddddd°

* 如:112°30.4128 = 112.50688

* @param str

* @author Cai_YF

* @return

*/

public static String DmTurnD(String jwd){

if(StringUtil.isNotEmpty(jwd)&&(jwd.contains("°"))){//如果不为空并且存在度单位

double d=0,m=0;

d = Double.parseDouble(jwd.split("°")[0]);

m = Double.parseDouble(jwd.split("°")[1])/60;

jwd = String.valueOf(d+m);

}

return jwd;

}

运行结果

f5217e62744059f598eec46533a5efa8.png

有待完善。。。!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

e3是合法浮点数吗_下面4个选项中,均是合法浮点数的选项是?

选B。b中的123是整数,不是浮点数,2e4.2的指数是4.2不满足浮点数的规则必须是整数,e5中的e不满足浮点数的规则,所以b中3个数均不是浮点数。a中的160、0.12是正确的,c中的123e4、0.0是正确的,d中的234、1e3是…

winform 菜单激发窗体切换做法

经常会用到类似于下图这样的winform窗体,其中点击各个菜单时于鏊做到内容窗体的切换,今天也记录一直切换的方法 在主窗体放置一个panal,所有的内容窗体均在改panal上呈现,实现以下方法 ///实例化主窗体 private void FrmSetup_Loa…

java 正则表达式 反向_正则表达式中的数量表示符、反向引用、零宽断言、以及java中的用法...

在表示数量时,如果一个正则表达式X,后面没有加表示数量的符号,那就默认出现一次。如果指定需要出现n次,那就用{n},例如a{n},就是匹配a出现n次的。a{n,}表示a出现至少n次的,而这个时候就会默认是贪婪模式&am…

django配置在MySQL_怎么在Django中安装与配置mysql

怎么在Django中安装与配置mysql发布时间:2021-02-26 17:42:11来源:亿速云阅读:57作者:Leah本篇文章为大家展示了怎么在Django中安装与配置mysql,内容简明扼要并且容易理解,绝对能使你眼前一亮,通…

Java字符串找出4个字节长度的字符

不解释,直接上代码: 由于Iteye代码贴四个字节的UTF-8字符出错,特能图的方式发布几个特殊字符: Java代码 public class Byte4Check { public static void main…

div 左右并排,使用CSS如何让两个div并排显示

用CSS如何让两个DIV盒子并排体现呢?各人知道默认情况下DIV是独占一排的,DIV不设置任何CSS格局,这个DIV盒子都邑独有一行踊跃换行。运用CSS让两个DIV并排闪现,排成一排显示思空见贯方式有两种:1、运用display:inline2、…

JStorm-介绍

1.概述 JStorm 是一个类似于 Hadoop 的MapReduce的计算系统,它是由Alibaba开源的实时计算模型,它使用Java重写了原生的Storm模型(Clojure和Java混合编写的),并且再原来的基础上做了许多改进。用户只需按照指定的接口实…

又一个绝对棒的对话框插件fancybox v1.3.4

http://www.jsfoot.com/jquery/demo/2011-07-30/fancybox/index.html jquery插件:fancybox Fancybox的特点如下: 可以支持图片、html文本、flash动画、iframe以及ajax的支持可以自定义播放器的CSS样式可以以组的形式进行播放如果将鼠标滚动插件&#xff…

php this validate,php扩展ZF——Validate扩展

php扩展ZF——Validate扩展更新时间:2008年01月10日 20:27:49 作者:php扩展ZF——Validate扩展之前写了一片文章关于如何在ZF0.6版本下扩展ZF的。这篇应该说是类似的文章,但环境换成ZF1.0RC1版本了。在开始ZF扩展之前,推荐先看看…

浅谈数据结构-选择排序(简单、堆排序)

选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 选择排序正如定义所讲,在数组查询出最小值,然后放在此次循环开始位置(前一次循环已经获取比它更…

安装php7的mysql扩展,php7安装mysql扩展的方法是什么

php7安装mysql扩展的方法:1、下载mysql扩展并解压;2、使用phpize工具初始化并进行configure;3、执行【make && make install】命令;4、编辑php.ini文件;5、重启服务。本文环境:windows10系统、php7…

iPhone屏幕尺寸、分辨率及适配

目录(?)[-] iPhone尺寸规格单位inch英吋iPhone手机宽高屏幕尺寸像素密度PPI缩放因子scale factor between logic point and device pixel1Scale起源 2UIScreenscale 3UIScreennativeScale 4机型判别Resolutions Rendering2x3x以及高倍图适配12x 23x 3高倍图文件…

鼠标移动响应php程序,jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】...

本文实例讲述了jQuery实现的响应鼠标移动方向插件用法。分享给大家供大家参考,具体如下:HTML代码如下:www.jb51.net jQuery响应鼠标移动*{margin:0;padding:0;}ul,li{list-style:none;}div{font-family:"Microsoft YaHei";}html,bo…

jitpack让使用第三方依赖库更简单

在开发过程中,使用第三方优秀依赖库是个很常见的问题,有的时候是maven,或者gradle, 或者sbt,大部分库工程,都会有对应的gradle,maven依赖代码,但是有的没有,尤其是使用的snapshot的依赖的时候,虽…

Swift - 发送消息(文本,图片,文件等)给微信好友或分享到朋友圈

通过调用微信提供的API接口,我们可以很方便的在应用中发送消息给微信好友,或者分享到朋友圈。在微信开发平台(https://open.weixin.qq.com)里,提供了详细的说明文档和样例。但由于提供的样例是使用Objective-C写的&…

linux怎么改程序图标,如何在Ubuntu Unity上修改应用程序图标

这篇文章将教大家在Ubuntu Unity上修改应用程序图标,这个教程适合于Ubuntu 14.04, Ubuntu 13.10, Ubuntu 12.04 等使用Unity作为默认桌面环境的发行版。在Unity桌面环境,程序启动器实际上以.desktop为后缀的文件的形式存储在电脑上,所以我们可…

htop linux命令详解,htop使用详解

在管理进程时通常要借助一些工具,比较常用的就是ps和top了;不过CentOS还为我们提供了一个更加强大的工具htop,下面就来了解一下此工具的使用方法。一、安装htophtop工具在epel源中提供,请自行配置epel源,也可以直接下载…

Android Termux安装SSH结合内网穿透实现远程SFTP文件传输

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 SFTP(SSH File Transfer Protocol)是一种基于SSH(Secure Shell)安全协议的文件传输协议。与FTP协议相比,SFTP使用了…

linux解压war包乱码,linux中zip解压乱码解决方法

在windows上压缩的文件,是以系统默认编码中文来压缩文件。由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码。有2种方式解决问题:1、通过unzip行命令解压,指定字符集unzip -O …

Android沉浸式通知栏设计

转载博客:http://www.2cto.com/kf/201503/381348.html Android4.4新特性,系统状态栏一体化。 实现的步骤主要有以下几点: 1.android4.4 以上版本 2.设置app全屏: 方法:在AndroidManifest.xml中设置android:theme"…