地理经纬度计算公式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

地理经纬度计算公式
地理经纬度计算公式
经度和纬度的表示方式
经度和纬度是用来表示地球上某一点的坐标信息。

经度表示东西
方向的距离,范围为-180°到180°,西经为负数,东经为正数;纬度表示南北方向的距离,范围为-90°到90°,赤道为0°,北纬为正数,南纬为负数。

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

公式如下:
a = sin²(Δlat/2) + cos(lat1) * cos(lat2) * sin²(Δlo
n/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) * (de lta_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(dista nce_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) * p i)
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, mar s_lon))
运行结果:
小明家的火星坐标为:(, )
所以,小明家的火星坐标与原始的WGS 84坐标完全一样。

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

相关文档
最新文档