四、实现步骤
在代码实现之前我们先看一下我们要实现的效果:
界面用到了 QLineEdit、QPushButton 以及 QWebView。
QLineEdit 允许用户输入或者编辑单行的纯文本,我们用它来显示我们的图片路径。
QPushButon 是一个按钮,当用户点击的时候会发射clicked()信号。我们用它来实现一个选择图片的按钮和定位的按钮。
QWebView 是一个可以显示和编辑Web文档的组件,相当于一个最简单的浏览器,我们用它来加载地图,实现定位功能。
全部代码可以在 实验楼 的课程文档中查看: https://www. shiyanlou.com/courses/6 04 。
整个过程就是使用 piexif 库获取图片 Exif 信息中的 GPS 数据,并通过 PyQt5 中的 QWebView显示百度地图,并根据百度地图提供的 URI API 在百度地图中定位我们获得的经纬度。
现在来看一下相片定位的效果,同学们最好用自己手机拍摄出的图片来测试。因为上传到网络上的图片一般都会进行处理,Exif 信息可能会丢失,也就无法完成相片拍摄位置的定位。
可以看到地图中标注了一个 红点,这个就是我测试相片的拍摄位置。
五、总结
通过本次实验我们应该对 PyQt5 这个 GUI 库有所了解,并能了解 GUI 应用程序的开发思路。同时应该了解如何从相片中获取 Exif 信息,以及如何用 QWebView 加载百度地图。当然这次实验仅仅利用了 GPS 信息,同学们还可以通过其他信息来扩展一下思路,写一个有用处的脚本。