我有一个 iOS 应用程序,用户可以在其中上传使用 UIImagePickerController 拍摄的照片。
当我查看 jpg exif 数据时,我注意到大量照片的“相机型号名称”中填写了“iPod Touch”。
为什么我可以收集使用 iPod Touch 拍摄的照片,即使它需要向应用程序授予地理定位访问权限?
即使在 iPod Touch 设备上,我也可以获得 GPS 坐标?
Camera Model Name : iPod touch
GPS Latitude : 48 deg 51' 7.80" N
GPS Longitude : 2 deg 20' 48.00" E
注意:用户必须启用 GeoLocation。
最佳答案
iPod Touch 没有 GPS 芯片 ( see here )。
因此,它使用 Wi-Fi 获取大致位置。 Apple 使用的技术是从一家名为 Skyhook 的公司获得许可的 - 他们有一个很好的 "How It Works" section在他们的网站上。
基本上,他们会尝试三角测量(或更好地)您的 iPod 接收到的 Wi-Fi 信号,无论您是否连接到该 Wi-Fi 网络(本质上是 SSID 扫描)。他们拥有关于各种 Wi-Fi 信号(通常不会移动太多)的实际 GPS 位置的数据。
但考虑到 Wi-Fi 信号并非随处可见(例如在爱荷华州的 Jade 米地中间,或在大型学术大楼的地下室等)并且 iPod 上没有 GPS,您的 iPod用户经常没有可用的 GeoLocation。
在您的情况下,您可能正在使用 Requiring the Presence of Location Services in Order to Run Core Location 的一个方面,它不需要 GPS,但只需要一些定位服务(即本例中 iPod 上的 Wi-Fi)可用。
通过授予地理定位访问权限可用的其他选项不要求地理定位可用且有效,而仅要求如果位置可用,您的应用程序可以接收数据。
取决于您的编码方式:)
关于iOS、EXIF 和相机型号名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18852379/