C#:数字经纬度和度分秒经纬度间的转换

更新时间:2023-07-25 20:32:33 阅读: 评论:0

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 cond = (tmp - minute) * num;
string degrees = ""+ degree + "°"+ minute + "′"+ cond + "″";
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 cond = degrees.Substring(m + 1, s - m - 1);
digitalDegree += (Convert.ToDouble(cond) / (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 cond = degrees.Substring(m + 1, s - m - 1);
digitalDegree += (Convert.ToDouble(cond) / (num * num));
return digitalDegree;
}
#endregion
}
}

本文发布于:2023-07-25 20:32:33,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1116972.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:经纬度   数字   函数   经典   符号   鼓浪屿   公用   歌词
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图