用python获得图片定位信息

用Python exifread 库获取和实现图片的定位
首先,安装这个库

pip install exifread
在这里插入图片描述
安装成功!!!

确定经纬度功能函数

查找GPS图片
def find_GPS_images(pic_path):
    GPS ={}
    data =''
    with open(pic_path,'rb') as f:
        tags =exifread.process_file(f)
        info = {
            # 注意 这里获得到的是值 需要使用 values方法
            'Image DateTime(拍摄时间)': tags.get('Image DateTime', '0').values,
            'GPS GPSLatitudeRef(纬度标志)': tags.get('GPS GPSLatitudeRef', '0').values,
            'GPS GPSLatitude(纬度)': tags.get('GPS GPSLatitude', '0').values,
            'GPS GPSLongitudeRef(经度标志)': tags.get('GPS GPSLongitudeRef', '0').values,
            'GPS GPSLongitude(经度)': tags.get('GPS GPSLongitude', '0').values
        }
        return info

建立GPS字典,用process_file()方法得到key 和value值,注意我们要取的是valu值。

经纬度度分秒转化成度函数

def process_num(x):
    '''
    处理经纬度 将其转化为 xx.xxxxxx格式
    注意列表中的每一个元素 是 <class 'exifread.utils.Ratio'>
    由于最后一个是 10243/2000 这样的格式 需要手动将其处理 其余的使用 .num 方法就能获得到值
    :param x: 传入的经度和纬度
    :return: 处理好了经纬度
    '''
    # 处理列表中最后一个元素
    x_last = eval(str(x[-1]))
    #  转化
    new_x = x[0].num + x[1].num / 60 + x_last / 3600

    return '{:.13f}'.format(new_x)

main 函数

if __name__ == '__main__':

    info_dict = find_GPS_images('GPS2.jpg')

    lat=info_dict.get('GPS GPSLatitude(纬度)')#纬度
    lng=info_dict.get( 'GPS GPSLongitude(经度)')#经度
  #小数形式的坐标
    lat_num = process_num(lat)
    lng_num = process_num(lng)

    print(lat_num,lng_num)#纬度,经度

运行结果

在这里插入图片描述
成功获取经纬度,接下来可以去地图上寻找或者使用爬虫继续在地图上爬取信息,下期分享!

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值