Hoy Cheung Asked: 2024-01-21 01:54:30 +0800 CST2024-01-21 01:54:30 +0800 CST 2024-01-21 01:54:30 +0800 CST 如何将 HEIC 地理位置转换为 google lng lat 格式 772 我保存了用我的 iPhone 拍摄的 HEIC 照片。我打开它并尝试找出纬度和经度数字。它显示的内容与google显示的格式完全不同,并且无法搜索到。如何转换这些数字以符合 Google 地图? 数字如下: 纬度:39;53;0.6499999 经度:116;9;24.4199999 google-maps 1 个回答 Voted Best Answer Bench Vue 2024-01-21T02:54:38+08:002024-01-21T02:54:38+08:00 您可以使用“re”(常规探索)库将字符串转换为“度、分、秒” 然后将这些值转换为十进制格式。 import re def extract_lat_long(coord_string): pattern = r'Latitude: (\d+;\d+;\d+\.\d+) Longitude: (\d+;\d+;\d+\.\d+)' match = re.search(pattern, coord_string) if match: latitude_input_string = match.group(1) longitude_input_string = match.group(2) return latitude_input_string, longitude_input_string else: return None def parse_dms(coord_string): pattern = r'(\d+);(\d+);([\d.]+)' match = re.match(pattern, coord_string) if match: degrees = int(match.group(1)) minutes = int(match.group(2)) seconds = float(match.group(3)) return degrees, minutes, seconds else: return None def dms_to_decimal(degrees, minutes, seconds): return degrees + minutes / 60 + seconds / 3600 # Your specific example: coord_string = 'Latitude: 39;53;0.6499999 Longitude: 116;9;24.4199999' latitude_input_string, longitude_input_string = extract_lat_long(coord_string) latitude_degrees, latitude_minutes, latitude_seconds = parse_dms(latitude_input_string) longitude_degrees, longitude_minutes, longitude_seconds = parse_dms(longitude_input_string) print(f"Latitude: {latitude_degrees, latitude_minutes, latitude_seconds} Longitude: {longitude_degrees, longitude_minutes, longitude_seconds}") latitude_decimal = dms_to_decimal(latitude_degrees, latitude_minutes, latitude_seconds) longitude_decimal = dms_to_decimal(longitude_degrees, longitude_minutes, longitude_seconds) print(f"Latitude: {latitude_decimal} Longitude: {longitude_decimal}") 结果 $ python convert.py Latitude: (39, 53, 0.6499999) Longitude: (116, 9, 24.4199999) Latitude: 39.88351388886111 Longitude: 116.15678333330555
您可以使用“re”(常规探索)库将字符串转换为“度、分、秒”
然后将这些值转换为十进制格式。
结果