如果reverseGeocodeLocation返回一个地方标记数组,该怎么办?

时间:2014-03-06 19:46:05

标签: ios core-location clgeocoder

我想检测用户何时前往新的国家/地区,因此我打算将startMonitoringSignificantLocationChanges:reverseGeocodeLocation:结合使用。

但是我想知道如果reverseGeocodeLocation:返回多个地标,该怎么办。由于我需要的粒度级别只是国家级别,我可以选择任何一个地方标记,因为它们可能都是针对同一个国家的吗?

2 个答案:

答案 0 :(得分:1)

地标包含location属性,可让您查看哪一个与您的技术当前位置最接近。所以你可以循环搜索并找到最接近的那个,然后使用那个。但是它们应该在地理位置上与用于查找的位置非常接近,所以它们几乎肯定都是针对同一个国家的,除非你站在边境。

然而,这甚至很重要的可能性非常小。您应该从数组中选择一个元素,无论是第一个还是最后一个元素。继续使用它,好像它是唯一的一个,因为如果存在多个,真的无关紧要。您找到的大多数代码都会包含检查至少之一的代码,然后获取要使用的第一个或最后一个地标。

答案 1 :(得分:0)

来自CLGeocoder Class Reference

typedef void (^CLGeocodeCompletionHandler)(NSArray *placemark, NSError *error);
  

包含CLPlacemark对象的数组。对于大多数地理编码请求,   这个数组应该只包含一个条目。但是,前向地理编码   请求可能会返回多个地标对象   指定的地址无法解析为单个位置。

在您的情况下,当您只对一个国家感兴趣时,您不应该被选择的地标所困扰。拿第一个。

[placemark firstObject];