经纬度度分秒互转

经纬度度分秒互转

经纬度是经度与纬度的合称组成一个坐标系统。称为地理坐标系统,它是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置。

纬线

纬线和经线一样是人类为度量方便而假设出来的辅助线,定义为地球表面某点随地球自转所形成的轨迹。任何一根纬线都是圆形而且两两平行。纬线的长度是赤道的周长乘以纬线的纬度的余弦,所以赤道最长,离赤道越远的纬线,周长越短,到了两极就缩为0。从赤道向北和向南,各分90°,称为北纬和南纬,分别用“N”和“S”表示。经度分东西,指南北,纬度分南北,指东西。

重要的纬线:

  • 北极圈(66°33’ 38" N)
  • 北回归线(23°26’ 22" N)
  • 赤道(0°N)
  • 南回归线(23° 26’ 22" S)
  • 南极圈(66°33’ 38" S)
  • 长度不同(离赤道越远的纬线越短)

经线

经线也称子午线,和纬线一样是人类为度量方便而假设出来的辅助线,定义为地球表面连接南北两极的大圆线上的半圆弧。任两根经线的长度相等,相交于南北两极点。每一根经线都有其相对应的数值,称为经度。经线指示南北方向。

子午线命名的由来:“某一天体视运动轨迹中,同一子午线上的各点该天体在上中天(午)与下中天(子)出现的时刻相同。”不同的经线具有不同的地方时。偏东的地方时要比较早,偏西的地方时要迟。

重要的经线:

  • 本初子午线
  • 巴黎子午线
  • 180度经线
  • 西经20度(W)
  • 东经160度(E)
  • 所有经线长度相等

经纬度度分秒互转_第1张图片

经纬度度分秒互转_第2张图片

经度

经度是指通过某地的经线面与本初子午面所成的二面角。在本初子午线以东的经度叫东经,在本初子午线以西的叫西经。东经用“E”表示,西经用“W”表示。 (本初子午线:按国际规定英国首都伦敦格林尼治天文台原址的那一条经线定为0°经线也叫本初子午线,然后向左右延伸,右边就是西经左边就是东经

经纬度度分秒互转_第3张图片

经纬度度分秒互转_第4张图片

经纬度度分秒互转_第5张图片

纬度

纬度是指过椭球面上某点作法线,该点法线与赤道平面的线面角,其数值在0至90度之间。位于赤道以北的点的纬度叫北纬,记为N;位于赤道以南的点的纬度称南纬,记为S。(以地球赤道为界:分为上下两半球上面半球就是北半球下面半球就是南半球

经纬度度分秒互转_第6张图片

进阶

经度的每一度°被平分为60分 ',每一分又被平分为60秒 "。符号:度=° 分=′ 秒=″

经纬度度分秒互转_第7张图片

于赤道以北的点的纬度叫北纬,记为N;位于赤道以南的点的纬度称南纬,记为S。

  • 纬度数值在0至30度之间的地区称为低纬度地区
  • 纬度数值在30至60度之间的地区称为中纬度地区
  • 纬度数值在60至90度之间的地区称为高纬度地区

经纬度度分秒互转_第8张图片

海拔

海拔是指某地点与海平面的高度差,是现时量度一个地方的高度标准。

经纬分度

经度

经度分为360度,每15度1个时区,其中0度的叫本初子午线,是第一个进入新一天的地方,然后向西每过1个时区就相差1小时。例如是早上5点,那么向西一个时区就是早上4点,再过1个时区就是早上3点,依此类推,向东则相反,一直到本初子午线,也就是说本初子午线两侧刚好相差23个小时

从赤道向两级,纬度越来越高。赤道是划分南北两半球的分界线。

经纬度1度=60分=3600秒,这个六十进制是古巴比伦人定制的,我们今天仍然在使用,只要关于角度和圆都是一样。

纬度

赤道的纬度为0°,将行星平分为南半球和北半球。

纬度是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间。位于赤道以北的点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S。

纬度数值在0至30度之间的地区称为低纬地区,纬度数值在30至60度之间的地区称为中纬地区,纬度数值在60至90度之间的地区称为高纬地区。

赤道、南回归线、北回归线、南极圈和北极圈是特殊的纬线。

纬度1秒的长度

地球的子午线总长度大约40008km。平均:

  • 纬度1度 = 大约111km
  • 纬度1分= 大约1.85km
  • 纬度1秒= 大约30.8m

经纬度的度和度分秒之间的换算:

  1. 将度(DDD)换算成度分秒(DMS)。例如东经108.90593度,转换方法是将108.90593整数位不变取108(度),用0.9059360=54.3558,取整数位54(分),0.355860=21.348再取整数位21(秒),故转化为东经108度54分21秒。
  2. 将度分秒(DMS)换算成度(DDD)。例如东经108度54分21秒,转换成度(DDD)的方法:108度54分22.2秒=108+(54/60)+(22.2/3600)=108.90616度。
  3. 因为计算时小数位保留的原因,导致正反计算存在一定误差,但误差影响不是很大。1秒的误差就是几米的距离。

度分秒转换经纬度

// 如天安门的中心是北纬39度54分26.37秒,东经116度23分29.22秒。
// 转换公式 经度的每一度°被平分为60分 ',每一分又被平分为60秒 "。
// 计算公式:度=° + 分=′ / 60 + 秒=″ / 60 / 60

// 度分秒转坐标
function degreeMinuteSecondConvertCoordinates(degree, minute, second, decimal = 6) {
    return (degree+(minute/60)+(second/60/60)).toFixed(decimal);
}
// 转经度
const longitude = degreeMinuteSecondConvertCoordinates(116, 23, 29.22);

// 转纬度
const latitude = degreeMinuteSecondConvertCoordinates(39, 54, 26.37);

// 生成坐标
const coordinates = [longitude, latitude];	// 结果:[116.391450, 39.907325]

经纬度转换度分秒

// 如天安门的中心是纬度:116.391450,经度:39.907325。

// 小数点前的是度°,组要转换的是小数点后面的。
// 转分 小数后面的乘以60,取整就是分
// 转秒 用转分的小数乘以60,小数部分就是秒

// 坐标转度分秒
function coordinatesConvertDegreeMinuteSecond(coordinates) {
    // 坐标字符串转数组
    const coords = String(coordinates).split('.');

    // 度  获取数组第一位
    const degree = coords[0];

    // 通过数组第二位进行计算生成数组获取分
    const mArr = String((Number(String(0+'.'+coords[1]))*60)).split('.');
    // 分 获取数组第一位
    const minute = mArr[0];
    // 秒 通过获取数组第二位进行计算生成秒  截取小数点后两位
    const second = (Number(String(0+'.'+mArr[1]))*60).toFixed(2);

    // 结果
    const result = [degree + "度", minute + "分", second + "秒"];

    return result.join('');
}

coordinatesConvertDegreeMinuteSecond(116.391450);	// 116度23分29.22秒
coordinatesConvertDegreeMinuteSecond(39.907325);	// 39度54分26.37秒

注:部分内容参考百度百科

你可能感兴趣的:(GIS,javascript)