我保存了我的 iPhone 拍摄的 HEIC 照片。我打开它并尝试找出纬度和经度数字。它显示的内容与google显示的格式完全不同,并且无法搜索到。 如何转换这些数字以符合 Google 地图?
您可以使用“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