地理经纬度计算公式

  • 格式:docx
  • 大小:11.96 KB
  • 文档页数:6

地理经纬度计算公式

地理经纬度计算公式

经度和纬度的表示方式

经度和纬度是用来表示地球上某一点的坐标信息。经度表示东西方向的距离,范围为-180°到180°,西经为负数,东经为正数;纬度表示南北方向的距离,范围为-90°到90°,赤道为0°,北纬为正数,南纬为负数。

球面距离计算公式

Haversine公式

Haversine公式是用来计算球面上两点之间的最短距离(弧长)的公式。公式如下:

a = sin²(Δlat/2) + cos(lat1) * cos(lat2) * sin²(Δlon/2)

c = 2 * atan2(√a, √(1-a))

d = R * c

其中: - lat1和lon1为第一个点的纬度和经度; - lat2和lon2为第二个点的纬度和经度; - Δlat = lat2 - lat1; - Δlon

= lon2 - lon1; - R为地球的半径(一般取平均半径约为6371km);

- d为球面上两点之间的距离。 举例说明

假设有两个城市A和B,其经纬度分别为A(° N, ° E)和B(°

N, ° E),我们来计算一下这两个城市之间的球面距离。

插入代码块:

import math

def calculate_distance(lat1, lon1, lat2, lon2):

R = 6371 # 地球半径,单位为km

lat1_rad = (lat1)

lon1_rad = (lon1)

lat2_rad = (lat2)

lon2_rad = (lon2)

delta_lat = lat2_rad - lat1_rad

delta_lon = lon2_rad - lon1_rad

a = (delta_lat/2)**2 + (lat1_rad) * (lat2_rad) * (delta_lon/2)**2

c = 2 * ((a), (1-a))

distance = R * c

return distance

# 计算A和B两个城市之间的距离

distance_AB = calculate_distance(, , , )

print("城市A和城市B之间的距离为:{:.2f} km".format(distance_AB)) 运行结果:

城市A和城市B之间的距离为: km

所以,城市A和城市B之间的球面距离约为 km。

图解说明

下图为地球上两点之间的球面距离插图:

B(° N, ° E)

/

/

/

/

/

/

A(° N, ° E)

球面距离即为通过两点之间的最短路径。

以上就是地理经纬度计算公式的相关说明,通过Haversine公式可以准确计算出地球上两点之间的球面距离。

大地坐标系转换公式

WGS 84坐标系

WGS 84(World Geodetic System 1984)是一种目前全球通用的大地坐标系统,用于地理定位和导航。WGS 84坐标系采用经度和纬度表示地理位置。 WGS 84坐标转换为火星坐标

由于中国国内的地图信息使用了GCJ-02坐标系,而WGS 84坐标系与GCJ-02坐标系存在一定的偏移。故在中国国内进行地图或地理位置相关的计算时,常需将WGS 84坐标转换为火星坐标(GCJ-02坐标)。

火星坐标转换公式如下:

def wgs84_to_mars(lat, lon):

a = .0

ee =

pi =

if out_of_china(lat, lon):

return lat, lon

d_lat = transform_lat(lon - , lat - )

d_lon = transform_lon(lon - , lat - )

rad_lat = lat / * pi

magic = (rad_lat)

magic = 1 - ee * magic * magic

sqrt_magic = (magic)

d_lat = (d_lat * ) / ((a * (1 - ee)) / (magic * sqrt_magic) * pi)

d_lon = (d_lon * ) / (a / sqrt_magic * (rad_lat) * pi)

mars_lat = lat + d_lat mars_lon = lon + d_lon

return mars_lat, mars_lon

举例说明

假设小明的家位于(, )处,我们将这个坐标转换为火星坐标。

插入代码块:

mars_lat, mars_lon = wgs84_to_mars(, )

print("小明家的火星坐标为:({}, {})".format(mars_lat, mars_lon))

运行结果:

小明家的火星坐标为:(, )

所以,小明家的火星坐标与原始的WGS 84坐标完全一样。

图解说明

下图为WGS 84坐标和火星坐标之间的转换示意图:

火星坐标

|

|

|

|

|

|

WGS 84坐标 以上就是关于大地坐标系转换的一些计算公式和示例说明,通过这些公式可以在不同的坐标系之间进行转换和计算,以满足具体需求。