四、實(shí)現(xiàn)步驟
在代碼實(shí)現(xiàn)之前我們先看一下我們要實(shí)現(xiàn)的效果:

界面用到了 QLineEdit、QPushButton 以及 QWebView。
QLineEdit 允許用戶輸入或者編輯單行的純文本,我們用它來顯示我們的圖片路徑。
QPushButon 是一個(gè)按鈕,當(dāng)用戶點(diǎn)擊的時(shí)候會發(fā)射clicked()信號。我們用它來實(shí)現(xiàn)一個(gè)選擇圖片的按鈕和定位的按鈕。
QWebView 是一個(gè)可以顯示和編輯Web文檔的組件,相當(dāng)于一個(gè)最簡單的瀏覽器,我們用它來加載地圖,實(shí)現(xiàn)定位功能。
全部代碼可以在 實(shí)驗(yàn)樓 的課程文檔中查看: https://www. shiyanlou.com/courses/6 04 。
整個(gè)過程就是使用 piexif 庫獲取圖片 Exif 信息中的 GPS 數(shù)據(jù),并通過 PyQt5 中的 QWebView顯示百度地圖,并根據(jù)百度地圖提供的 URI API 在百度地圖中定位我們獲得的經(jīng)緯度。
現(xiàn)在來看一下相片定位的效果,同學(xué)們最好用自己手機(jī)拍攝出的圖片來測試。因?yàn)樯蟼鞯骄W(wǎng)絡(luò)上的圖片一般都會進(jìn)行處理,Exif 信息可能會丟失,也就無法完成相片拍攝位置的定位。
可以看到地圖中標(biāo)注了一個(gè) 紅點(diǎn),這個(gè)就是我測試相片的拍攝位置。
五、總結(jié)
通過本次實(shí)驗(yàn)我們應(yīng)該對 PyQt5 這個(gè) GUI 庫有所了解,并能了解 GUI 應(yīng)用程序的開發(fā)思路。同時(shí)應(yīng)該了解如何從相片中獲取 Exif 信息,以及如何用 QWebView 加載百度地圖。當(dāng)然這次實(shí)驗(yàn)僅僅利用了 GPS 信息,同學(xué)們還可以通過其他信息來擴(kuò)展一下思路,寫一個(gè)有用處的腳本。