C#: 数字经纬度和度分秒经纬度间的转换
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication1
- {
- /// <summary>
- /// 公用的特殊函数
- /// </summary>
- public class SpecialFunctions
- {
- #region 构造函数
- /// <summary>
- /// 构造函数
- /// </summary>
- public SpecialFunctions()
- { }
- #endregion
- #region 方法
- /// <summary>
- /// 数字经纬度和度分秒经纬度转换 (Digital degree of latitude and longitude and vehicle to latitude and longitude conversion)
- /// </summary>
- /// <param name="digitalLati_Longi">数字经纬度</param>
- /// <return>度分秒经纬度</return>
- static public string ConvertDigitalToDegrees(string digitalLati_Longi)
- {
- double digitalDegree = Convert.ToDouble(digitalLati_Longi);
- return ConvertDigitalToDegrees(digitalDegree);
- }
- /// <summary>
- /// 数字经纬度和度分秒经纬度转换 (Digital degree of latitude and longitude and vehicle to latitude and longitude conversion)
- /// </summary>
- /// <param name="digitalDegree">数字经纬度</param>
- /// <return>度分秒经纬度</return>
- static public string ConvertDigitalToDegrees(double digitalDegree)
- {
- const double num = 60;
- int degree = (int)digitalDegree;
- double tmp = (digitalDegree - degree) * num;
- int minute = (int)tmp;
- double second = (tmp - minute) * num;
- string degrees = "" + degree + "°" + minute + "′" + second + "″";
- return degrees;
- }
- /// <summary>
- /// 度分秒经纬度(必须含有'°')和数字经纬度转换
- /// </summary>
- /// <param name="digitalDegree">度分秒经纬度</param>
- /// <return>数字经纬度</return>
- static public double ConvertDegreesToDigital(string degrees)
- {
- const double num = 60;
- double digitalDegree = 0.0;
- int d = degrees.IndexOf('°'); //度的符号对应的 Unicode 代码为:00B0[1](六十进制),显示为°。
- if (d < 0)
- {
- return digitalDegree;
- }
- string degree = degrees.Substring(0, d);
- digitalDegree += Convert.ToDouble(degree);
- int m = degrees.IndexOf('′'); //分的符号对应的 Unicode 代码为:2032[1](六十进制),显示为′。
- if (m < 0)
- {
- return digitalDegree;
- }
- string minute = degrees.Substring(d + 1, m - d - 1);
- digitalDegree += ((Convert.ToDouble(minute)) / num);
- int s = degrees.IndexOf('″'); //秒的符号对应的 Unicode 代码为:2033[1](六十进制),显示为″。
- if (s < 0)
- {
- return digitalDegree;
- }
- string second = degrees.Substring(m + 1, s - m - 1);
- digitalDegree += (Convert.ToDouble(second) / (num * num));
- return digitalDegree;
- }
- /// <summary>
- /// 度分秒经纬度(必须含有'/')和数字经纬度转换
- /// </summary>
- /// <param name="digitalDegree">度分秒经纬度</param>
- /// <param name="cflag">分隔符</param>
- /// <return>数字经纬度</return>
- static public double ConvertDegreesToDigital_default(string degrees)
- {
- char ch = '/';
- return ConvertDegreesToDigital(degrees, ch);
- }
- /// <summary>
- /// 度分秒经纬度和数字经纬度转换
- /// </summary>
- /// <param name="digitalDegree">度分秒经纬度</param>
- /// <param name="cflag">分隔符</param>
- /// <return>数字经纬度</return>
- static public double ConvertDegreesToDigital(string degrees, char cflag)
- {
- const double num = 60;
- double digitalDegree = 0.0;
- int d = degrees.IndexOf(cflag);
- if (d < 0)
- {
- return digitalDegree;
- }
- string degree = degrees.Substring(0, d);
- digitalDegree += Convert.ToDouble(degree);
- int m = degrees.IndexOf(cflag, d + 1);
- if (m < 0)
- {
- return digitalDegree;
- }
- string minute = degrees.Substring(d + 1, m - d - 1);
- digitalDegree += ((Convert.ToDouble(minute)) / num);
- int s = degrees.Length;
- if (s < 0)
- {
- return digitalDegree;
- }
- string second = degrees.Substring(m + 1, s - m - 1);
- digitalDegree += (Convert.ToDouble(second) / (num * num));
- return digitalDegree;
- }
- #endregion
- }
- }
C#: 数字经纬度和度分秒经纬度间的转换的更多相关文章
- 度分秒转换十进制度 之Excel实现
我们都知道,1°=60′,1′=60″,1°=3600″.那么,轻而易举容易计算:112°18′37.6″=112+18/60+37.6/3600≍112.3104444°这当然是有参考价值的,比如爬 ...
- java android 将小数度数转换为度分秒格式
/** * 将小数度数转换为度分秒格式 * @param numStr (主要用于图片中存储经纬度) * @return */ public static String convertToSexage ...
- windows phone 7 定位(获取经纬度),然后找到经纬度所在的位置(城市信息)
原文:windows phone 7 定位(获取经纬度),然后找到经纬度所在的位置(城市信息) 前几天做项目用到, 代码贴给大家. /// <summary> /// 获取当前位置的经纬度 ...
- Excel中使用VBA进行度分秒与十进制度的转换
发现Excel的VBA功能真是批量处理的一把利刃,工作中小试牛刀了一把,将Excel中度分秒形式的坐标批量处理成十进制度形式,处理完后用于GIS展点制图. 原Excel数据如下: VBA代码如下: S ...
- baidu经纬度坐标与google经纬度坐标都转换
baidu经纬度坐标与google经纬度坐标都是经过转换的.使用下面那个url可以将原始坐标或者谷歌的坐标转换成baidu的坐标http://api.map.baidu.com/ag/coord/co ...
- GPS整数。度分秒转换
例如30.453280 104.2018怎么把度数转换为度分秒的格式要详细换算方法 例如30.453280°,30.453280°,则有30°0.453280°×60= 27.1968′则有27′0. ...
- C#常用数据类型间的转换
数据类型有很多种,数据类型间的转换也是有很多的方法,如果不细心整理的话等到用的时候再查就会显得很浪费时间,所以决心整理出这篇博文.主要是讲解常用数据类型之间的转换方法以及常见数据类型所占字节数. 字节 ...
- C++ 各种基本类型间的转换
常用的转换方法: 流转换 STL标准函数库中函数转换 流转换 流转换主要是用到了<sstream>库中的stringstream类. 通过stringstream可以完成基本类型间的转换, ...
- Python常见字符编码间的转换
主要内容: 1.Unicode 和 UTF-8的爱恨纠葛 2.字符在硬盘上的存储 3.编码的转换 4.验证编码是否转换正确 5.Python bytes类型 前 ...
随机推荐
- jquery-ajax请求:超时设置,增加 loading 提升体验
前端发送Ajax请求到服务器,服务器返回数据这一过程,因原因不同耗时长短也有差别,且这段时间内页面显示空白.如何优化这段时间内的交互体验,以及长时间内服务器仍未返回数据这一问题,是我们开发中不容忽视的 ...
- Ubuntu 16.04安装uafred用于替代Alfred
说明: Macx下的Alfred非常强大,在Ubuntu下的替代为uafred,为什么选择uafred而不选择其它在于其功能开发简单,模块集成方便,不像别的实现是那种来回封装调用,其实就是一个功能而已 ...
- Spring在bean配置文件中定义电子邮件模板
在上一篇Spring电子邮件教程,硬编码的所有电子邮件属性和消息的方法体中的内容,这是不实际的,应予以避免.应该考虑在Spring bean 配置文件中定义电子邮件模板. 1.Spring的邮件发件人 ...
- linux 升级系统内核linux-4.10版本
http://blog.csdn.net/steven_liwen/article/details/68487241
- 全面的framebuffer详解二
转:http://blog.chinaunix.net/uid-28297667-id-3773729.html (二)一个LCD显示芯片的驱动实例 以Skeleton LCD 控制器驱动为例,在LI ...
- mormot解析天气预报JSON数据
mormot解析天气预报JSON数据 uses SynCommons; constjson2 = '{' + #13#10 +'"error":0,' + #13#10 +'&qu ...
- LTE试题
D 如果出现eNB的告警1018007“小区退服,光口不可用”,不可能是以下哪种原因造成的?( ) 基带板上Ir接口光模块损坏 基带板上Ir接口光模块被拔出 基带板上Ir接口光模块型 ...
- 如何利用Flink实现超大规模用户行为分析
如何利用Flink实现超大规模用户行为分析 各位晚上好,首先感谢大家参与我的这次主题分享,同时也感谢 InfoQ AI 前线组织这次瀚思科技主题月! 瀚思科技成立于 2014 年,按行业划分我们是 ...
- Minify压缩JS和CSS
Minify把CSS和JS压缩和削减(Minify:去掉空格回车符等),以及把多个CSS,JS文件整合到一个文件里.不要以为你的大带宽没有必要进行这类优化.使用它的理由更重要的是文件合并,而不是压缩, ...
- 怎样获取shell函数的返回值及shell命令的返回值?
1.获取shell函数调用的返回值: #!/bin/sh info() { cat jlb.sh } res=`info` echo "state: "$? echo " ...