通過一張圖片就能知道你的定位

1.前序

有的照片是帶有GPS定位信息的,我們就是通過這個信息去通過高德定位圖片的拍攝地址
右鍵照片屬性-->查看詳細(xì)信息,我們可以看到照片的GPS定位信息。

image.png

2.

在寫代碼之前,我們還需要準(zhǔn)備調(diào)取高德地圖得KEY,通過該KEY去調(diào)用高德接口,解析經(jīng)緯度成我們所理解的地址信息。(具體如何創(chuàng)建調(diào)用KEY,可以參考我前幾篇對高德API接口使用示例)

此外,我們還需要借助Python的exifread模塊包功能讀取照片屬性


image.png

讀取照片屬性,獲取經(jīng)緯度,拍攝時間等。

# 利用exifread庫,讀取圖片的屬性
img_exif = exifread.process_file(open(self.img_path, 'rb'))

# 能夠讀取到屬性
if img_exif:
    # 緯度數(shù)
    latitude_gps = img_exif['GPS GPSLatitude']

    # N,S 南北緯方向
    latitude_direction = img_exif['GPS GPSLatitudeRef']

    # 經(jīng)度數(shù)
    longitude_gps = img_exif['GPS GPSLongitude']

    # E,W 東西經(jīng)方向
    longitude_direction = img_exif['GPS GPSLongitudeRef']

    # 拍攝時間
    take_time = img_exif['EXIF DateTimeOriginal']

我們需要關(guān)注能否拿到這幾個關(guān)鍵詞數(shù)據(jù)。


GPS GPSLatitude,GPS GPSLongitude,EXIF DateTimeOriginal

'GPS GPSLongitude': (0x0004) Ratio=[114, 7, 4813/100] @ 1900
'GPS GPSLatitude': (0x0002) Ratio=[22, 30, 811/100] @ 1876

根據(jù)圖片拿到的經(jīng)緯度,我們無法通過高德API確定位置,還需進(jìn)一步做數(shù)據(jù)處理。

if latitude_gps and longitude_gps and take_time:

    # 對緯度、經(jīng)度值原始值作進(jìn)一步的處理
    latitude = self.__format_lati_long_data(latitude_gps)
    longitude = self.__format_lati_long_data(longitude_gps)

    # print(f'{longitude},{latitude}')
    # 注意:由于gps獲取的坐標(biāo)在國內(nèi)高德等主流地圖上逆編碼不夠精確,這里需要轉(zhuǎn)換為火星坐標(biāo)系
    location = wgs84togcj02(longitude, latitude)

處理后的經(jīng)緯度

獲取到經(jīng)度、緯度是:114.13511208995212,22.49954944216219

獲取到經(jīng)緯度后,接下來就是要通過高德API轉(zhuǎn)換成我們能看懂的地址。(需要申請KEY),高德官網(wǎng)

resp = requests.get(self.url_get_position.format(self.api_key, location))

location_data = json.loads(resp.text)

address = location_data.get('regeocode').get('formatted_address')

return address

這時候我們就能知道這張照片拍攝時間及地址。

image.png

最后
微信和qq的照片在發(fā)送出來后,已經(jīng)對GPS信息做了屏蔽處理。所以大家現(xiàn)在不用太擔(dān)心自己的位置被獲取到。

更多源碼信息請參考原文

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容