我正在 iPhone 上处理用户照片,其中一些带有地理标记(有纬度和经度)。例如,我的经度看起来像 -73.123456。每个 GPS 标签都有一个 HorizontalAccuracy 属性,以米为单位。
如何将水平精度与纬度/经度结合起来创建 GPS 坐标组(桶)?
例如,我想让所有在用户家周围拍摄的照片都落入一个桶中,而所有在工作周围拍摄的照片都落入另一个桶中。
我最初是在考虑将纬度/经度乘以 1,000,000 ,然后切断小数部分:
CLLocation *assetLocation = [asset valueForProperty:ALAssetPropertyLocation];
CLLocationCoordinate2D coordinate = [assetLocation coordinate];
NSInteger latitudeInt = coordinate.latitude * 1000000;
NSInteger longitudeInt = coordinate.longitude * 1000000;
latitudeInt = latitudeInt-(latitudeInt % 100000);
longitudeInt = longitudeInt-(longitudeInt % 100000);
NSLog(@"trimmed:(lat %f, lon %f) real: (lat %f, lon %f) ", latitudeInt/1000000.0, longitudeInt/1000000.0,coordinate.latitude,coordinate.longitude);
这将导致 GPS 读数为 -73.1
这种方法的问题在于,对于一张照片,我得到的 GPS 位置距离为 1 公里,但如果我从纬度/经度读数中减去 0.099,误差可能高达 5 公里。理想情况下,我的桶每个都有 1-2 公里宽,以某个 GPS 坐标为中心。
这提出了一个问题 - 我如何结合有关纬度/经度的信息以及水平精度来创建 GPS 坐标组/存储桶?它们不必准确或直接以用户家为中心,但我希望在用户家周围拍摄的所有照片都落入“用户家”桶中。