PHAsset CLLocation 未提供与照片应用相同的位置

Posted

技术标签:

【中文标题】PHAsset CLLocation 未提供与照片应用相同的位置【英文标题】:PHAsset CLLocation is not giving location same as photos app 【发布时间】:2017-02-01 12:06:23 【问题描述】:

我们正在使用以下方法从使用CLGeocoderreverseGeocodeLocation 的 PHAsset 属性中获取纬度和经度。

CLGeocoder * geoCoder = [CLGeocoder new];
[geoCoder reverseGeocodeLocation:loc completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) 
    CLPlacemark *placeInfo = placemarks[0];

    

我们正在获取 placeInfo 对象,但通道和 subThoroughfare 总是为零。

对于同一张照片,photosapp 可以获取通道和子通道。

提前谢谢你。

【问题讨论】:

【参考方案1】:

thoroughfare 和 subThoroughfare 属性可能不包含某些地方的数据。因此,不要使用 thoroghfare 和 subThoroghfare 创建地址字符串,而是使用 addressdictionary 如下:

 NSString *address = ABCreateStringWithAddressDictionary(placeInfo .addressDictionary, NO);

【讨论】:

我已经尝试使用 placeInfo .addressDictionary 但它也返回相同的地方,我无法在其中获得通道和 subThoroughfare 值,但 ios 照片应用程序如何设法获得它。

以上是关于PHAsset CLLocation 未提供与照片应用相同的位置的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 PHAsset 的原始(EXIF?)创建日期/时间?

iOS 8 照片框架:从 PHAsset 获取文件名

如何复制 PHAsset?

根据“人脸”元数据获取 PHAsset

为啥 PHAsset creationDate 与 exif 元数据不同?

如何从 PHAsset 提取中获取照片?