经纬度转换、换算_10448.847106这种经纬度怎么转换-程序员宅基地

技术标签: 杂知识  javascript  

一、经纬度的表示方式

示例1:-55.016666666666666
示例2: E42°14′1″

一、12.033888888888889或者-1.051111111111111 转成 N12°2′2.00″ 或者 W1°3′4.00″

分为两部分,一部分是判断方位,另一部分就是换算度分秒
**判断方位:**东正西负,北正南负

// 换算度分秒,如下
export const ToDegrees = (val) => {
    
	if (typeof(val) == "undefined" || val == "") {
    
		return "";
	}
	var i = val.indexOf('.');
	// 这里是先判断的方位,所以最终结果不包含负数。
	if (val.indexOf("-") != -1) {
    
		var strDu = i < 0 ? val : val.substring(1, i); //获取度
	} else {
    
		var strDu = i < 0 ? val : val.substring(0, i); //获取度
	}
	var strFen = 0;
	var strMiao = 0;
	if (i > 0) {
    
		var strFen = "0" + val.substring(i);
		strFen = strFen * 60 + "";
		i = strFen.indexOf('.');
		if (i > 0) {
    
			strMiao = "0" + strFen.substring(i);
			strFen = strFen.substring(0, i); //获取分
			strMiao = strMiao * 60 + "";
			i = strMiao.indexOf('.');
			strMiao = strMiao.substring(0, i + 4); //取到小数点后面三位
			strMiao = parseFloat(strMiao).toFixed(2); //精确小数点后面两位
		}
	}
	return strDu + "°" + strFen + "\′" + strMiao + "\″"; // 这里可以修改成你想要的格式例如你可以
	//    改成这样的:return strDu + "°" + strFen + "'" + strMiao + "\"N";

}
二、N12°2′2.00″ 或者 W1°3′4.00″转成12.033888888888889或者-1.051111111111111

同样,方位判断移到外面,不然数字类型在进行加运算时,会出错。

// 参数:度,分,秒,小数点后几位
export const ToDigital = (strDu, strFen, strMiao, len) => {
    
	let duIsNegative = false
	len = (typeof(len) == "undefined") ? 15 : len;  // 将小数点后15位保留
	strDu = (typeof(strDu) == "undefined" || strDu == "") ? 0 : parseFloat(strDu);
	strFen = (typeof(strFen) == "undefined" || strFen == "") ? 0 : parseFloat(strFen) / 60;
	strMiao = (typeof(strMiao) == "undefined" || strMiao == "") ? 0 : parseFloat(strMiao) / 3600;
	var digital = strDu + strFen + strMiao;
	if (digital == 0) {
    
		return "";
	} else {
    
		return digital.toFixed(len);
	}
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44681872/article/details/130053799

智能推荐

MySQL 查询时间差值大于某一个值的 记录-程序员宅基地

文章浏览阅读2.2k次。"SELECT table_id, FROM table WHERE (timediff('%s',raise_time)<'00:05:00')" % \(table_id, str(datetime.datetime.now()))转载于:https://www.cnblogs.com/buxizhizhoum/p/6780181.html_mysql查询 相邻记录时间差大于某个数

tensorflow学习笔记1(代码转自官网)_tensor(const:0)-程序员宅基地

文章浏览阅读608次。tensorflow学习笔记_tensor(const:0)

最适合入门的100个深度学习项目-程序员宅基地

文章浏览阅读8.9w次,点赞259次,收藏2k次。本专栏整理了《PyTorch深度学习项目实战100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。_深度学习项目

力士乐A10V泵控制比例溢流阀放大器-程序员宅基地

文章浏览阅读69次。具有故障自动防护功能,可用于诸如制动或转向系统。– 具有精细测量范围内的更高分辨率。– 电磁比例压差控制,与电流相关。– 可进行转速传感式功率控制。– 标准外置式比例放大器。– 油缸行程的末端带阻尼。– 易于控制最大流量。

渗透测试的8个步骤(超详细),小白必看!_渗透测试的流程-程序员宅基地

文章浏览阅读466次。渗透测试:以安全为基本原则,通过攻击者以及防御者的角度去分析目标所存在的安全隐患以及脆弱性,以保护系统安全为最终目标。_渗透测试的流程

Ipa Guard软件介绍:启动界面和功能模块全解析,保护你的iOS应用源码-程序员宅基地

文章浏览阅读522次。界面分顶部的显示控制,中介的文件列表,底部的是否处理开关。签名配置界面可以配置签名证书,描述文件,设置app的权限(次功能大部分app是用不到的),设置混淆加密完是否要直接安装到设备。代码混淆界面随左侧的菜单不同略有区别。右侧主功能区会随着功能变化,但是整体分3块,顶部显示过滤区,中间主体内容显示区,底部开关控制和强度控制。这个界面可以选中打开文件,从配置加载文件,切换软件显示的语言,登录账号,查看软件的版本信息等。左侧菜单:按模块分成启动界面,代码模块,文件模块,重签名与测试模块。

随便推点

Webrtc delay-base-bwe代码分析(6): 整体分析_remotebitrateestimatorsinglestream::detector-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏2次。Webrtc delay-base-bwe代码分析(6): 整体分析_remotebitrateestimatorsinglestream::detector

稳健估计/M估计/最小二乘法-程序员宅基地

文章浏览阅读2.9w次,点赞19次,收藏140次。稳健估计是在粗差不可避免的情况下,选择适当的估计方法使未知量估计尽可能减免粗差的影响,得出正常模式下的最佳估计。本文先介绍基于最小二乘法的多元线性回归理论,再引出基于M估计的加权最小二乘估计。_m估计

明明没用到hystrix相关的东西,为什么启动会报Hystrix相关的错误呢?_hystrixcommand org.springframework.boot.autoconfig-程序员宅基地

文章浏览阅读385次。最近在优化网关性能,去掉无用的依赖是发现,我项目里明明没有用到hystrix相关的东西,为什么把hystrix依赖去掉,启动就会报错呢?报错信息如下:java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration.propertySourcesPlaceholderConfig_hystrixcommand org.springframework.boot.autoconfigure.condition.onpropertyco

SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder” 解决方法_slf4j: failed to load class "org.slf4j.impl.static-程序员宅基地

文章浏览阅读766次。提示SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”完整解释SLF4J解释原因为: Failed to load class org.slf4j.impl.StaticLoggerBinder This warning message is reported when the org.slf4j.impl..._slf4j: failed to load class "org.slf4j.impl.staticloggerbinder

Linux_无法定位软件包的处理方法(vsftpd、dsniff、tree)_linux无法定位软件包-程序员宅基地

文章浏览阅读1.9k次,点赞2次,收藏8次。刚刚重新安装完系统,发现无法定位文件位置,诸如vsftpd、dsniff、tree等等,这是因为服务器的源不在国内,需要定位一个国内的服务器源,然后将指令更新才行,按顺序分别点击 ->1 文件 ->2 etc ->3 apt里面来,双击sources.list。我这里是虚拟的ubunt64位系统,开始用的桥接方式,发现不能联网,这也就不能在后续更新指令。ubuntu软件 -> 点击源代码(需要密码) -> 服务器选择:其他站点。-> 确定 -> 开启虚拟机。_linux无法定位软件包

llama2模型部署方案的简单调研-GPU显存占用(2023年7月25日版)_llama2 70b需要多大显存-程序员宅基地

文章浏览阅读3.1w次,点赞26次,收藏86次。llama2显存占用,本地部署,本地推理_llama2 70b需要多大显存

推荐文章

热门文章

相关标签