GPS坐标转换器
在十进制度(DD)、度分秒(DMS)和度十进制分(DDM)之间转换GPS坐标。
关于此工具
GPS坐标可以用多种格式表示,了解如何在这些格式之间进行转换对于导航、制图、测量和户外活动至关重要。本GPS坐标转换器在十进制度数(DD)、度分秒(DMS)和度分秒(DDM)这三种最广泛使用的格式之间进行无缝转换。无论您使用GPS设备、移动应用、地图软件还是纸质地图,该工具都能确保不同系统和标准之间的兼容性。
要使用该转换器,只需以支持的格式粘贴或输入您的坐标,然后选择开始格式。该工具会自动识别输入的结构,并同时显示三种格式中的等效坐标。这消除了手动计算或在多个工具之间切换的需要,对于飞行员、测量员、登山者、研究人员以及经常使用来自不同来源的位置数据的任何人都非常有价值。
该转换器完全在您的浏览器中运行,无需向服务器上传,确保您的坐标保持隐私。它处理表示半球的正值和负值(纬度:北/南,经度:东/西),并在转换过程中保持精度。无论您是从老式Garmin接收器解码坐标、为GIS软件转换数据,还是以团队理解的格式共享位置信息,该工具都能瞬间架起不同记号系统之间的桥梁。
常见问题
代码实现
def dd_to_dms(decimal_deg: float, is_lat: bool) -> str:
"""Convert decimal degrees to DMS string."""
direction = ("N" if decimal_deg >= 0 else "S") if is_lat else ("E" if decimal_deg >= 0 else "W")
abs_deg = abs(decimal_deg)
degrees = int(abs_deg)
minutes_full = (abs_deg - degrees) * 60
minutes = int(minutes_full)
seconds = (minutes_full - minutes) * 60
return f"{degrees}° {minutes}' {seconds:.4f}" {direction}"
def dd_to_ddm(decimal_deg: float, is_lat: bool) -> str:
"""Convert decimal degrees to DDM string."""
direction = ("N" if decimal_deg >= 0 else "S") if is_lat else ("E" if decimal_deg >= 0 else "W")
abs_deg = abs(decimal_deg)
degrees = int(abs_deg)
minutes = (abs_deg - degrees) * 60
return f"{degrees}° {minutes:.6f}' {direction}"
def dms_to_dd(degrees: float, minutes: float, seconds: float, direction: str) -> float:
"""Convert DMS to decimal degrees."""
dd = degrees + minutes / 60 + seconds / 3600
if direction in ("S", "W"):
dd = -dd
return dd
# New York City coordinates
lat, lon = 40.712776, -74.005974
print(f"DD: {lat}, {lon}")
print(f"DMS: {dd_to_dms(lat, True)}, {dd_to_dms(lon, False)}")
print(f"DDM: {dd_to_ddm(lat, True)}, {dd_to_ddm(lon, False)}")
# Convert back
lat_back = dms_to_dd(40, 42, 45.9936, "N")
print(f"Back to DD: {lat_back:.6f}") # 40.712776Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.