根据图片查询地址

安装exifread模块,可以解析出图像中的经纬度、拍摄时间以及其它信息
至于apikey,可以到高德平台免费申请一个,如下图
在这里插入图片描述
在这里插入图片描述

import exifread
import requests

def process_list(lst):

    last = int(lst[-1]) / 3600                                  # 最后一个元素单独处理
    new_x = lst[0].num + lst[1].num / 60 + last / 3600          # 度分秒转换成度
    return '%.13f' % new_x


def gps_adress(lat, lng):
    if not lat or not lng:
        return "经纬度信息有误"
    # 建议自己申请一个
    key = "自己申请的apikey"
    url = f'https://restapi.amap.com/v3/geocode/regeo?output=json&key={key}&location={lat},{lng}'


    response = requests.get(url)
    address = ''
    if response.status_code == 200:
        resp_json = response.json()     # 转换成python字典
        print(resp_json)
        address = resp_json['regeocode']['formatted_address']
        # address = []
    return address


if __name__ == '__main__':
    f = open('C:/Users/Charging/Desktop/OOOOOO.jpg', 'rb')
    tags = exifread.process_file(f)
    if tags:
        # 拍摄时间
        i_time = tags.get('Image DateTime')
        if i_time:
            i_time = i_time.values
        # 北纬
        lat = tags.get('GPS GPSLatitude')
        if lat:
            lat = process_list(lat.values)
        # 东经
        lng = tags.get('GPS GPSLongitude')
        if lng:
            lng = process_list(lng.values)
        print('经纬度信息:', i_time, lat, lng)
        adress = gps_adress(lng, lat)

        print(f"图片拍摄时间 %s, 拍摄地点:%s" % (i_time, adress))
    else:
        print("此图像无任何信息")

'''方法2:安装模块,直接输入经纬度,即可获取地址信息'''
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent='demo_of_gnss_help')
position = geolocator.reverse('40.689241,-74.044515')         # 输入经纬度即可返回地址
print(position.address)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值