29 lines
708 B
Python
29 lines
708 B
Python
def ddm_to_dd(ddm):
|
|
parts = ddm.split(',')
|
|
|
|
lat_parts = parts[0]
|
|
lon_parts = parts[2]
|
|
|
|
lat_degrees = int(lat_parts[:2])
|
|
lat_minutes = float(lat_parts[2:])
|
|
lat_direction = parts[1]
|
|
|
|
lon_degrees = int(lon_parts[:3])
|
|
lon_minutes = float(lon_parts[3:])
|
|
lon_direction = parts[3]
|
|
|
|
lat_dd = lat_degrees + lat_minutes / 60
|
|
lon_dd = lon_degrees + lon_minutes / 60
|
|
|
|
if lat_direction == 'S':
|
|
lat_dd *= -1
|
|
if lon_direction == 'W':
|
|
lon_dd *= -1
|
|
|
|
return round(lat_dd, 6), round(lon_dd, 6)
|
|
|
|
# 示例调用
|
|
ddm_string = "2239.89242384,N,11411.86681487,E"
|
|
lat_dd, lon_dd = ddm_to_dd(ddm_string)
|
|
print(f"Latitude: {lat_dd}, Longitude: {lon_dd}")
|