追求女神,用Python通过女神的照片获取位置,结果...

119 阅读3分钟

兄嘚群里又热闹了,有一个朋友特别深情,在时光荏苒,白驹过隙的大学里,他有幸参加了一次社团活动,在社团活动开始到一半左右,有一个长得乖巧,文静的女生上去唱起歌来,就这样这位朋友一见钟情,慢慢打听这位女生联系方式,这一追求就是多年啊,就在大学各自出社会后,今天这位朋友出来冒泡了。聊天如下:

A:朋友们救命 !我的女神同意做我女朋友了,但是有一个问题,她说还记得这张照片我是在哪里给它拍的吗?我实在不太记得了,你们帮我想想。

在这里插入图片描述

B:我记得你这是在体育篮球场和他告白的时候。

C:没有,我怎么记得是在长青街那边和他告白时拍的。

D:不对,肯定是在他获得歌唱比赛第二名时。

F:不是兄弟们,他这告白的次数太多了,A你这发的照片我帮你去想想办法,这女朋友一定要帮你追到手。

在这里插入图片描述

1.思考过程

可以分为两大部分:

  1. 获取图片的经纬度
  2. 利用高德API的逆地理编码,将经纬度识别成具体地址

2.获取KEY

首先进入网页链接https://console.amap.com/dev/key/app,如下图创建应用,创建完成后会获得一个KEY。 在这里插入图片描述

具体内容可参考API文档https://lbs.amap.com/api/webservice/guide/api/georegeo 在这里插入图片描述 在这里插入图片描述

3.源码如下

import exifread
import requests
from lxml import etree


# 获取经纬度
def get_gps(file):
    f = open(file, 'rb')
    tags = exifread.process_file(f)
    for key in tags:
        if key == "GPS GPSLongitude":
            longtitude = float(str(tags[key])[1:-1].split(",")[0]) + float(
                str(tags[key])[1:-1].split(",")[1]) / 60 + float(eval(str(tags[key])[1:-1].split(",")[2])) / 3600
            print("经度 =", tags[key], tags['GPS GPSLatitudeRef'])
        elif key == "GPS GPSLatitude":
            latitude = float(str(tags[key])[1:-1].split(",")[0]) + float(
                str(tags[key])[1:-1].split(",")[1]) / 60 + float(eval(str(tags[key])[1:-1].split(",")[2])) / 3600
            print("纬度 =", tags[key], tags['GPS GPSLongitudeRef'])
    print(longtitude, latitude)
    return longtitude, latitude


longtitude, latitude = get_gps("这里是图片的路径")


# 通过经纬度获取地址
def get_add(longtitude, latitude):
    key = "这里是在高德申请的key"
    url = f"https://restapi.amap.com/v3/geocode/regeo?output=xml&location={longtitude},{latitude}&key={key}&radius=1000&extensions=all"
    response = requests.get(url)
    content = response.text
    # 解析返回的xml(content)
    xml = bytes(bytearray(content, encoding='utf-8'))
    e = etree.XML(xml)
    adress = e.xpath("//formatted_address/text()")
    poi = e.xpath("//poi/name/text()")
    print("定位地址:", adress)
    print("附近兴趣点:", poi)


get_add(longtitude, latitude)

4.执行结果

在这里插入图片描述注意图片素材一定要有以下两个条件:

  1. 未压缩过的原图
  2. 拍照时手机开着定位

注意啦,各位记得一定要把定位给关了,注意隐私,要用的时候再去开也不迟。

我来告诉你们结果了,这位朋友成功抱得美人归,女神被感动的热泪盈眶啊,这位朋友还仗义的说:明天带女神一起出来请我吃大餐。行呗,单身狗不就是我吗????

在这里插入图片描述

你们的三连(点赞,收藏,评论)是我持续输出的动力,感谢。

①有趣的源码与学习经验 ②工具安装包 ③专业解答 ④Python有关的所有电子书

点击领取福利