常用经纬度转换

度分转换:

将度分单位数据转换为度单位数据

度=度+分/60

例如:

经度 = 116°20.12'

纬度 = 39°12.34'

经度 = 116 + 20.12 / 60 = 116.33533°

纬度 = 39 + 12.34 / 60 = 39.20567°

NTU经度 = 116.33533 * 100000 = 11633533(NTU)

NTU纬度 = 39.20567 * 100000 = 3920567(NTU)

度分秒转换:

将度分秒单位数据转换为度单位数据

度 = 度 + 分 / 60 + 秒 / 60 / 60

例如:

经度 = 116°20'43"

纬度 = 39°12'37"

经度 = 116 + 20 / 60 + 43 / 60 / 60 = 116.34528°

纬度 = 39 + 12 / 60 + 37 / 60 / 60 = 39.21028°

NTU经度 = 116.34528 * 100000 = 11634528(NTU)

NTU纬度 = 39.21028 * 100000 = 3921028(NTU)

其格式的经纬值先转换度,再采用上面的运算。

与经纬度有关的基础知识:

NTU 相当于十万分之一度。

如何计算经度方向距离

比如: 点A的纬度为3995400,点B的纬度为3995300,则这两个点在沿着纬线的方向相差100米。

点A的经度为11695400,点B的经度为11695300,则这两个点在沿着经线的方向相差大约为77米,

该值的计算方法可以用近似公式:

经度方向距离 = 经度差 * cos(纬度值) = 100 * cos(39) = 77米。

如何计算两点间距离

比如:点A的经度为11695400,纬度为3995400。点B的经度为11695300,纬度为3995300。 公式:两点间距离 = [ (A点经度 - B点经度)^2 + (A点纬度 - B点纬度)^2 ] ^ (1/2) = [ (11695400 - 11695300)^2

+ (3995400 - 3995300)^2 ] ^(1/2) =(10000+10000) ^ (1/2) =141米

公式说明:加法 + ,减法 - ,乘法 *,除法 /,幂运算 ^(1/2)表示平方根 ^2表示平方。 适用范围:未加密经纬度/加密经纬度

返回顶部

使用的比例级别总共有0-12级共13个级别,他们和实际的比例尺的对应关系分别是: 0级 ------- 1:5 000

1级 ------- 1:10 000

2级 ------- 1:20 000

3级 ------- 1:40 000

4级 ------- 1:80 000

5级 ------- 1:160 000

6级 ------- 1:320 000

7级 ------- 1:640 000

8级 ------- 1:1 280 000

9级 ------- 1:2 560 000

10级 ------- 1:5 120 000

11级 ------- 1:10 240 000

12级 ------- 1:20 480 000

13级 ------- 1:40 960 000

14级 ------- 1:81 920 000

简单的说,0级地图最详细,12级地图最简单。

2 计算偏移角。

完整的列子如下:

xmlns="http://www.w3.org/1999/xhtml">无标题页

onclick="distanceByLnglat(116.95400,39.95400,116.95300,39.95300);">test

me

根据地球上任意两点的经纬度计算两点间的距离

地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为6356.755千米,平均半径6371.004千米。如果我们假设地球是一个完美的球体,那么它的半径就是地球的平均半径,记为R。如果以0度经线为基准,那么根据地球表面任意两点的经纬度就可以计算出这两点间的地表距离(这里忽略地球表面地形对计算带来的误差,仅仅是理论上的估算值)。设第一点A的经纬度为(LonA, LatA),第二点B的经纬度为(LonB, LatB),按照0度经线的基准,东经取经度的正值(Longitude),西经取经度负值(-Longitude),北纬取90-纬度值(90-Latitude),南纬取90+纬度值(90+Latitude),则经过上述处理过后的两点被计为(MLonA, MLatA)和(MLonB, MLatB)。那么根据三角推导,可以得到计算两点距离的如下公式:

C = sin(MLatA)*sin(MLatB)*cos(MLonA-MLonB) + cos(MLatA)*cos(MLatB)

Distance = R*Arccos(C)*Pi/180

这里,R和Distance单位是相同,如果是采用6371.004千米作为半径,那么Distance就是千米为单位,如果要使用其他单位,比如mile,还需要做单位换算,1千米=0.621371192mile 如果仅对经度作正负的处理,而不对纬度作90-Latitude(假设都是北半球,南半球只有澳洲

具有应用意义)的处理,那么公式将是:

C = sin(LatA)*sin(LatB) + cos(LatA)*cos(LatB)*cos(MLonA-MLonB)

Distance = R*Arccos(C)*Pi/180

以上通过简单的三角变换就可以推出。

如果三角函数的输入和输出都采用弧度值,那么公式还可以写作:

C = sin(LatA*Pi/180)*sin(LatB*Pi/180)

cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180)

Distance = R*Arccos(C)*Pi/180 +

也就是:

C = sin(LatA/57.2958)*sin(LatB/57.2958) + cos(LatA/57.2958)*cos(LatB/57.2958)*cos((MLonA-MLonB)/57.2958)

Distance = R*Arccos(C) = 6371.004*Arccos(C) kilometer = 0.621371192*6371.004*Arccos(C) mile = 3958.[1**********]8*Arccos(C) mile

在实际应用当中,一般是通过一个个体的邮政编码来查找该邮政编码对应的地区中心的经纬度,然后再根据这些经纬度来计算彼此的距离,从而估算出某些群体之间的大致距离范围(比如酒店旅客的分布范围-各个旅客的邮政编码对应的经纬度和酒店的经纬度所计算的距离范围-等等),所以,通过邮政编码查询经纬度这样一个数据库是一个很有用的资源。 根据经纬度计算该位置点与附近某一经纬度位置点的位置偏移角

如何计算?

设某一城市有一个城市地标,可以视为城市的中心点 ,其经纬度已知。

分散在城市中心分别

(1)由多层环形交通公路(环线),环城市地标为基准,在不同层的环线上分布着重要的设施。

(2)分布着多个卫星城、主要居民区和学校、基础设施。

现控制无人机分别自城市地标出发,依次探访和航拍环城公路上的重要设施。

无人机配置有GPS导航和电子罗盘。

自城市中心地标处控制无人机起飞。

1 计算任意经纬度点间的距离

用GPS测出两个点的经纬度后,如何计算这两个点之间的距离呢。用的是便携式GPS,只有经纬度显示,无坐标显示和输出。

设两点A、B的经、纬度分别为(jA,wA)(jB,wB),则半径为R的球面上两点间的最短距离(大圆弧)为:

弧AB=R*arccos[sin(wA)sin(wB)+cos(wA)cos(wB)*cos(jA-jB)]

google maps的脚本里代码。

private const double EARTH_RADIUS = 6378.137;

private static double rad(double d)

{

return d * Math.PI / 180.0;

}

public static double GetDistance(double lat1, double lng1, double lat2, double lng2)

{

double radLat1 = rad(lat1);

double radLat2 = rad(lat2);

double a = radLat1 - radLat2;

double b = rad(lng1) - rad(lng2);

double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2),2) +

Math.Cos(radLat1)*Math.Cos(radLat2)*Math.Pow(Math.Sin(b/2),2)));

s = s * EARTH_RADIUS;

s = Math.Round(s * 10000) / 10000;

return s;

}

;该函数用IDL语言编写,利用GIS中根据两点经纬度计算距离公式

;计算经纬度两点间的距离

Function Length2LatLon,pts0,pts1

radius=6378.14d;地球平均半径,单位公里

; print,pts0,pts1

; length=radius * acos(sin(pts0[1]*!PI/180.0)*sin(pts1[1]*!PI/180.0)+cos(pts0[1]*!PI/180.0)*cos(pts1[1]*!PI/180.0)*cos(pts0[0]*!PI/180.0-pts1[0]*!PI/180.0))

length=radius * acos(sin(pts0[1]*!DTOR)*sin(pts1[1]*!DTOR)+cos(pts0[1]*!DTOR)*cos(pts1[1]*!DTOR)*cos(pts0[0]*!DTOR-pts1[0]*!DTOR))

return,length

end

pro test

pts0=[117.548802d,38.625238d]

pts1=[117.548625d,38.625139d]

print,length2latlon(pts0,pts1)

end

另外在IDL中提供了计算两点距离的方法map_2points可以方便的计算不同单位(Miles,Meters)的距离,还可以通过设置不同的参数来得到不同的距离、角度值,

Syntax:

Result = MAP_2POINTS( lon0, lat0, lon1, lat1 [, DPATH=value | , /METERS | , /MILES | , NPATH=integer{2 or greater} | , /PARAMETERS | , RADIANS=value] [, /RADIUS] [, /RHUMB] ) 具体可以参考IDL 的Help里面讲解

如果要算的距离是椭球面的距离,就难些。

因为大地线的方程是一个微分方程,所以大地线长度是对一个微分方程的开方的积分,无法写成简单的公式.通常是直接用差分代替微分,用求和代替积分算出,这是很严格的.

下面是近似地由大地经纬度求椭球面距离的逼近方法:

如两点在同一纬线上,距离为N*cos(phi)*(lambda2-lambda1)。

如两点在同一经线上,距离为M*dphi从phi1到phi2的积分。

其中N=a/sqrt(d), d=1-e*e*sin(phi)*sin(phi),

M=a*(1-e*e)/[d*sqrt(d)],

其中长短轴a,b与扁率偏心率的关系是:a/b=1-f=sqrt(1-e*e).

把积分区域分成等分n小段,积分可以写成求和,既可算出。这也是严格的。

如两点不在同一经纬线上,且两点距离很近,则小区域的椭球面可以视为平面,于是两点的

距离近似地是上面算出的距离的平方和的开方。如两点距离较远,把两点间的经纬差分成等分n小段,每小段的距离的和就是所求的距离。

google maps的脚本里代码。

private const double EARTH_RADIUS = 6378.137;

private static double rad(double d)

{

return d * Math.PI / 180.0;

}

public static double GetDistance(double lat1, double lng1, double lat2, double lng2)

{

double radLat1 = rad(lat1);

double radLat2 = rad(lat2);

double a = radLat1 - radLat2;

double b = rad(lng1) - rad(lng2);

double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2),2) +

Math.Cos(radLat1)*Math.Cos(radLat2)*Math.Pow(Math.Sin(b/2),2)));

s = s * EARTH_RADIUS;

s = Math.Round(s * 10000) / 10000;

return s;

}

;该函数用IDL语言编写,利用GIS中根据两点经纬度计算距离公式

;计算经纬度两点间的距离

Function Length2LatLon,pts0,pts1

radius=6378.14d;地球平均半径,单位公里

; print,pts0,pts1

; length=radius * acos(sin(pts0[1]*!PI/180.0)*sin(pts1[1]*!PI/180.0)+cos(pts0[1]*!PI/180.0)*cos(pts1[1]*!PI/180.0)*cos(pts0[0]*!PI/180.0-pts1[0]*!PI/180.0))

length=radius * acos(sin(pts0[1]*!DTOR)*sin(pts1[1]*!DTOR)+cos(pts0[1]*!DTOR)*cos(pts1[1]*!DTOR)*cos(pts0[0]*!DTOR-pts1[0]*!DTOR))

return,length

end

pro test

pts0=[117.548802d,38.625238d]

pts1=[117.548625d,38.625139d]

print,length2latlon(pts0,pts1)

end

另外在IDL中提供了计算两点距离的方法map_2points可以方便的计算不同单位(Miles,Meters)的距离,还可以通过设置不同的参数来得到不同的距离、角度值,

Syntax:

Result = MAP_2POINTS( lon0, lat0, lon1, lat1 [, DPATH=value | , /METERS | , /MILES | , NPATH=integer{2 or greater} | , /PARAMETERS | , RADIANS=value] [, /RADIUS] [, /RHUMB] ) 具体可以参考IDL 的Help里面讲解

如果要算的距离是椭球面的距离,就难些。

因为大地线的方程是一个微分方程,所以大地线长度是对一个微分方程的开方的积分,无法写成简单的公式.通常是直接用差分代替微分,用求和代替积分算出,这是很严格的.

下面是近似地由大地经纬度求椭球面距离的逼近方法:

如两点在同一纬线上,距离为N*cos(phi)*(lambda2-lambda1)。

如两点在同一经线上,距离为M*dphi从phi1到phi2的积分。

其中N=a/sqrt(d), d=1-e*e*sin(phi)*sin(phi),

M=a*(1-e*e)/[d*sqrt(d)],

其中长短轴a,b与扁率偏心率的关系是:a/b=1-f=sqrt(1-e*e).

把积分区域分成等分n小段,积分可以写成求和,既可算出。这也是严格的。

如两点不在同一经纬线上,且两点距离很近,则小区域的椭球面可以视为平面,于是两点的距离近似地是上面算出的距离的平方和的开方。如两点距离较远,把两点间的经纬差分成等分n小段,每小段的距离的和就是所求的距离。

度分转换:

将度分单位数据转换为度单位数据

度=度+分/60

例如:

经度 = 116°20.12'

纬度 = 39°12.34'

经度 = 116 + 20.12 / 60 = 116.33533°

纬度 = 39 + 12.34 / 60 = 39.20567°

NTU经度 = 116.33533 * 100000 = 11633533(NTU)

NTU纬度 = 39.20567 * 100000 = 3920567(NTU)

度分秒转换:

将度分秒单位数据转换为度单位数据

度 = 度 + 分 / 60 + 秒 / 60 / 60

例如:

经度 = 116°20'43"

纬度 = 39°12'37"

经度 = 116 + 20 / 60 + 43 / 60 / 60 = 116.34528°

纬度 = 39 + 12 / 60 + 37 / 60 / 60 = 39.21028°

NTU经度 = 116.34528 * 100000 = 11634528(NTU)

NTU纬度 = 39.21028 * 100000 = 3921028(NTU)

其格式的经纬值先转换度,再采用上面的运算。

与经纬度有关的基础知识:

NTU 相当于十万分之一度。

如何计算经度方向距离

比如: 点A的纬度为3995400,点B的纬度为3995300,则这两个点在沿着纬线的方向相差100米。

点A的经度为11695400,点B的经度为11695300,则这两个点在沿着经线的方向相差大约为77米,

该值的计算方法可以用近似公式:

经度方向距离 = 经度差 * cos(纬度值) = 100 * cos(39) = 77米。

如何计算两点间距离

比如:点A的经度为11695400,纬度为3995400。点B的经度为11695300,纬度为3995300。 公式:两点间距离 = [ (A点经度 - B点经度)^2 + (A点纬度 - B点纬度)^2 ] ^ (1/2) = [ (11695400 - 11695300)^2

+ (3995400 - 3995300)^2 ] ^(1/2) =(10000+10000) ^ (1/2) =141米

公式说明:加法 + ,减法 - ,乘法 *,除法 /,幂运算 ^(1/2)表示平方根 ^2表示平方。 适用范围:未加密经纬度/加密经纬度

返回顶部

使用的比例级别总共有0-12级共13个级别,他们和实际的比例尺的对应关系分别是: 0级 ------- 1:5 000

1级 ------- 1:10 000

2级 ------- 1:20 000

3级 ------- 1:40 000

4级 ------- 1:80 000

5级 ------- 1:160 000

6级 ------- 1:320 000

7级 ------- 1:640 000

8级 ------- 1:1 280 000

9级 ------- 1:2 560 000

10级 ------- 1:5 120 000

11级 ------- 1:10 240 000

12级 ------- 1:20 480 000

13级 ------- 1:40 960 000

14级 ------- 1:81 920 000

简单的说,0级地图最详细,12级地图最简单。

2 计算偏移角。

完整的列子如下:

xmlns="http://www.w3.org/1999/xhtml">无标题页

onclick="distanceByLnglat(116.95400,39.95400,116.95300,39.95300);">test

me

根据地球上任意两点的经纬度计算两点间的距离

地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为6356.755千米,平均半径6371.004千米。如果我们假设地球是一个完美的球体,那么它的半径就是地球的平均半径,记为R。如果以0度经线为基准,那么根据地球表面任意两点的经纬度就可以计算出这两点间的地表距离(这里忽略地球表面地形对计算带来的误差,仅仅是理论上的估算值)。设第一点A的经纬度为(LonA, LatA),第二点B的经纬度为(LonB, LatB),按照0度经线的基准,东经取经度的正值(Longitude),西经取经度负值(-Longitude),北纬取90-纬度值(90-Latitude),南纬取90+纬度值(90+Latitude),则经过上述处理过后的两点被计为(MLonA, MLatA)和(MLonB, MLatB)。那么根据三角推导,可以得到计算两点距离的如下公式:

C = sin(MLatA)*sin(MLatB)*cos(MLonA-MLonB) + cos(MLatA)*cos(MLatB)

Distance = R*Arccos(C)*Pi/180

这里,R和Distance单位是相同,如果是采用6371.004千米作为半径,那么Distance就是千米为单位,如果要使用其他单位,比如mile,还需要做单位换算,1千米=0.621371192mile 如果仅对经度作正负的处理,而不对纬度作90-Latitude(假设都是北半球,南半球只有澳洲

具有应用意义)的处理,那么公式将是:

C = sin(LatA)*sin(LatB) + cos(LatA)*cos(LatB)*cos(MLonA-MLonB)

Distance = R*Arccos(C)*Pi/180

以上通过简单的三角变换就可以推出。

如果三角函数的输入和输出都采用弧度值,那么公式还可以写作:

C = sin(LatA*Pi/180)*sin(LatB*Pi/180)

cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180)

Distance = R*Arccos(C)*Pi/180 +

也就是:

C = sin(LatA/57.2958)*sin(LatB/57.2958) + cos(LatA/57.2958)*cos(LatB/57.2958)*cos((MLonA-MLonB)/57.2958)

Distance = R*Arccos(C) = 6371.004*Arccos(C) kilometer = 0.621371192*6371.004*Arccos(C) mile = 3958.[1**********]8*Arccos(C) mile

在实际应用当中,一般是通过一个个体的邮政编码来查找该邮政编码对应的地区中心的经纬度,然后再根据这些经纬度来计算彼此的距离,从而估算出某些群体之间的大致距离范围(比如酒店旅客的分布范围-各个旅客的邮政编码对应的经纬度和酒店的经纬度所计算的距离范围-等等),所以,通过邮政编码查询经纬度这样一个数据库是一个很有用的资源。 根据经纬度计算该位置点与附近某一经纬度位置点的位置偏移角

如何计算?

设某一城市有一个城市地标,可以视为城市的中心点 ,其经纬度已知。

分散在城市中心分别

(1)由多层环形交通公路(环线),环城市地标为基准,在不同层的环线上分布着重要的设施。

(2)分布着多个卫星城、主要居民区和学校、基础设施。

现控制无人机分别自城市地标出发,依次探访和航拍环城公路上的重要设施。

无人机配置有GPS导航和电子罗盘。

自城市中心地标处控制无人机起飞。

1 计算任意经纬度点间的距离

用GPS测出两个点的经纬度后,如何计算这两个点之间的距离呢。用的是便携式GPS,只有经纬度显示,无坐标显示和输出。

设两点A、B的经、纬度分别为(jA,wA)(jB,wB),则半径为R的球面上两点间的最短距离(大圆弧)为:

弧AB=R*arccos[sin(wA)sin(wB)+cos(wA)cos(wB)*cos(jA-jB)]

google maps的脚本里代码。

private const double EARTH_RADIUS = 6378.137;

private static double rad(double d)

{

return d * Math.PI / 180.0;

}

public static double GetDistance(double lat1, double lng1, double lat2, double lng2)

{

double radLat1 = rad(lat1);

double radLat2 = rad(lat2);

double a = radLat1 - radLat2;

double b = rad(lng1) - rad(lng2);

double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2),2) +

Math.Cos(radLat1)*Math.Cos(radLat2)*Math.Pow(Math.Sin(b/2),2)));

s = s * EARTH_RADIUS;

s = Math.Round(s * 10000) / 10000;

return s;

}

;该函数用IDL语言编写,利用GIS中根据两点经纬度计算距离公式

;计算经纬度两点间的距离

Function Length2LatLon,pts0,pts1

radius=6378.14d;地球平均半径,单位公里

; print,pts0,pts1

; length=radius * acos(sin(pts0[1]*!PI/180.0)*sin(pts1[1]*!PI/180.0)+cos(pts0[1]*!PI/180.0)*cos(pts1[1]*!PI/180.0)*cos(pts0[0]*!PI/180.0-pts1[0]*!PI/180.0))

length=radius * acos(sin(pts0[1]*!DTOR)*sin(pts1[1]*!DTOR)+cos(pts0[1]*!DTOR)*cos(pts1[1]*!DTOR)*cos(pts0[0]*!DTOR-pts1[0]*!DTOR))

return,length

end

pro test

pts0=[117.548802d,38.625238d]

pts1=[117.548625d,38.625139d]

print,length2latlon(pts0,pts1)

end

另外在IDL中提供了计算两点距离的方法map_2points可以方便的计算不同单位(Miles,Meters)的距离,还可以通过设置不同的参数来得到不同的距离、角度值,

Syntax:

Result = MAP_2POINTS( lon0, lat0, lon1, lat1 [, DPATH=value | , /METERS | , /MILES | , NPATH=integer{2 or greater} | , /PARAMETERS | , RADIANS=value] [, /RADIUS] [, /RHUMB] ) 具体可以参考IDL 的Help里面讲解

如果要算的距离是椭球面的距离,就难些。

因为大地线的方程是一个微分方程,所以大地线长度是对一个微分方程的开方的积分,无法写成简单的公式.通常是直接用差分代替微分,用求和代替积分算出,这是很严格的.

下面是近似地由大地经纬度求椭球面距离的逼近方法:

如两点在同一纬线上,距离为N*cos(phi)*(lambda2-lambda1)。

如两点在同一经线上,距离为M*dphi从phi1到phi2的积分。

其中N=a/sqrt(d), d=1-e*e*sin(phi)*sin(phi),

M=a*(1-e*e)/[d*sqrt(d)],

其中长短轴a,b与扁率偏心率的关系是:a/b=1-f=sqrt(1-e*e).

把积分区域分成等分n小段,积分可以写成求和,既可算出。这也是严格的。

如两点不在同一经纬线上,且两点距离很近,则小区域的椭球面可以视为平面,于是两点的

距离近似地是上面算出的距离的平方和的开方。如两点距离较远,把两点间的经纬差分成等分n小段,每小段的距离的和就是所求的距离。

google maps的脚本里代码。

private const double EARTH_RADIUS = 6378.137;

private static double rad(double d)

{

return d * Math.PI / 180.0;

}

public static double GetDistance(double lat1, double lng1, double lat2, double lng2)

{

double radLat1 = rad(lat1);

double radLat2 = rad(lat2);

double a = radLat1 - radLat2;

double b = rad(lng1) - rad(lng2);

double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2),2) +

Math.Cos(radLat1)*Math.Cos(radLat2)*Math.Pow(Math.Sin(b/2),2)));

s = s * EARTH_RADIUS;

s = Math.Round(s * 10000) / 10000;

return s;

}

;该函数用IDL语言编写,利用GIS中根据两点经纬度计算距离公式

;计算经纬度两点间的距离

Function Length2LatLon,pts0,pts1

radius=6378.14d;地球平均半径,单位公里

; print,pts0,pts1

; length=radius * acos(sin(pts0[1]*!PI/180.0)*sin(pts1[1]*!PI/180.0)+cos(pts0[1]*!PI/180.0)*cos(pts1[1]*!PI/180.0)*cos(pts0[0]*!PI/180.0-pts1[0]*!PI/180.0))

length=radius * acos(sin(pts0[1]*!DTOR)*sin(pts1[1]*!DTOR)+cos(pts0[1]*!DTOR)*cos(pts1[1]*!DTOR)*cos(pts0[0]*!DTOR-pts1[0]*!DTOR))

return,length

end

pro test

pts0=[117.548802d,38.625238d]

pts1=[117.548625d,38.625139d]

print,length2latlon(pts0,pts1)

end

另外在IDL中提供了计算两点距离的方法map_2points可以方便的计算不同单位(Miles,Meters)的距离,还可以通过设置不同的参数来得到不同的距离、角度值,

Syntax:

Result = MAP_2POINTS( lon0, lat0, lon1, lat1 [, DPATH=value | , /METERS | , /MILES | , NPATH=integer{2 or greater} | , /PARAMETERS | , RADIANS=value] [, /RADIUS] [, /RHUMB] ) 具体可以参考IDL 的Help里面讲解

如果要算的距离是椭球面的距离,就难些。

因为大地线的方程是一个微分方程,所以大地线长度是对一个微分方程的开方的积分,无法写成简单的公式.通常是直接用差分代替微分,用求和代替积分算出,这是很严格的.

下面是近似地由大地经纬度求椭球面距离的逼近方法:

如两点在同一纬线上,距离为N*cos(phi)*(lambda2-lambda1)。

如两点在同一经线上,距离为M*dphi从phi1到phi2的积分。

其中N=a/sqrt(d), d=1-e*e*sin(phi)*sin(phi),

M=a*(1-e*e)/[d*sqrt(d)],

其中长短轴a,b与扁率偏心率的关系是:a/b=1-f=sqrt(1-e*e).

把积分区域分成等分n小段,积分可以写成求和,既可算出。这也是严格的。

如两点不在同一经纬线上,且两点距离很近,则小区域的椭球面可以视为平面,于是两点的距离近似地是上面算出的距离的平方和的开方。如两点距离较远,把两点间的经纬差分成等分n小段,每小段的距离的和就是所求的距离。


相关内容

  • 低纬度磁异常的转换与处理
  • 第24卷第1期 2009年2月(页码:]24-130) 地球物理 IN 学进展 v.1.24,N..1 Feb.2009 PR()GRESSGE()PHYSICS 赵百民,郝天珧,徐亚.低纬度磁异常的转换与处理.地球物理学进展,2009,24(1):124-130 Zhao B M,HaoTY,Xu ...

  • ArcGIS中的坐标系统定义与投影转换
  • ArcGIS 中的坐标系统定义与投影转换 ArcGIS 中的坐标系统定义与投影转换 坐标系统是GIS 数据重要的数学基础,用于表示地理要素.图像和观测结果的参照系统,坐标系统的定义能够保证地理数据在软件中正确的显示其位置.方向和距离,缺少坐标系统的GIS 数据是不完善的,因此在ArcGIS 软件中正 ...

  • 浅析地勘测量中常用坐标系的转换方法
  • 2011年10 月 浅析地勘测量中常用坐标系的转换方法 苏长武,王剑 武警黄金第七支队,山东烟台264004 摘要:通过介绍地质勘查测量工作中常见的几种坐标系的定义和相互联系,阐述独立坐标系.54北京坐标系.80西安坐标系.WGS84以及2000国家大地坐标系之间的转换方法和实际运用,并且展望了我国 ...

  • 地理坐标知识
  • ArcGIS中坐标系统小议 要明确两个概念:Geographic coordinate system和projected coordinate system的区别. 1.首先理解Geographic coordinate system,Geographic coordinate system直译为地 ...

  • 1地心坐标系
  • 一.地球坐标系 地面和空间点位的确定总是要参照于某一给定的坐标系.坐标系是人为设计和确定的,根据不同的使用目的,所采用的坐标系亦各不相同.大地测量中采用的坐标系主要有两大类型,即天球坐标系和地球坐标系.天球坐标系用于确定天体在天球上的位置.其天球空间直角坐标系原点位于地球质心O:Z轴指向天球北极: ...

  • GPS大地坐标向地方坐标转换的
  • 第 1 期 2005 年 3 月 华东师范大学学报(自然科学版) Journal of East China Norrnal University (Natural Sc ience) No.l Mar. 2005 立章编号: 1000-5641 (200日 01-0073-05 GPS 大地坐标向 ...

  • 平面坐标系统转换方法
  • 60李保平 钟建宇 平面坐标系统转换方法 2008年 平面坐标系统转换方法 李保平,钟建宇 1 2 (1.陕西省煤炭工业局,陕西西安 710001;2.陕西省煤田地质局物探测量队,陕西西安 710005) 摘 要:论述了多种常用坐标系的转换方法,包括1954..WGS-84坐 标等. 关键词:坐标系 ...

  • 光学遥感常用基础知识_V1.0_20110314
  • 光学遥感常用基础知识 1. 遥感与摄影测量概述 遥感 Remote Sensing 遥感是应用探测仪器,不与探测目标相接触,从远处把目标的电磁波特性记录下来,通过分析,揭示出物体的特征性质及其变化的综合性探测技术. 遥感的分类 (1)按遥感平台分 地面遥感:传感器设置在地面平台上,如车载.船载.手提 ...

  • 手持GPS参数设置及全国各地坐标转换参数
  • 如何设置手持GPS 相关参数及全国各地坐标转换参数 一.如何设置手持GPS 相关参数 (一)手持GPS 的主要功能 手持GPS ,指全球移动定位系统,是以移动互联网为支撑.以GPS 智能手机为终端的GIS 系统,是继桌面Gis .WebGis 之后又一新的技术热点.目前功能最强的手持GPS ,其集成 ...