-1

我正在 iPhone 上处理用户照片,其中一些带有地理标记(有纬度和经度)。例如,我的经度看起来像 -73.123456。每个 GPS 标签都有一个 Horizo​​ntalAccuracy 属性,以米为单位。

如何将水平精度与纬度/经度结合起来创建 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 坐标组/存储桶?它们不必准确或直接以用户家为中心,但我希望在用户家周围拍摄的所有照片都落入“用户家”桶中。

4

1 回答 1

0

您应该研究k-means 聚类算法。

您的任务非常困难,这将花费大量时间并且需要算法(地理空间)知识。如果您需要,请再考虑一下。

于 2013-05-27T10:42:31.190 回答