2013-04-11 19 views
3

我有一個位置數組,當我添加另一個位置時,我希望能夠檢查數組中的其他位置是否位於新的位置塊內。這是我必須要找到當前位置的代碼:檢查IOS中兩個位置的接近程度

//Geocoding Block 
[self.geoCoder reverseGeocodeLocation: locationManager.location completionHandler: 
^(NSArray *placemarks, NSError *error) { 

    //Get nearby address 
    CLPlacemark *placemark = [placemarks objectAtIndex:0]; 

    //String to hold address 
    locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "]; 

陣列尚待因爲我想先算出這個創建的,我不知道應該在陣列(串舉行... )。我知道如何進行搜索,我只需要知道如何比較位置。

+0

您嘗試與其他位置進行比較的數組在哪裏?我想我不確定你爲什麼向我們展示了這種地理編碼方法。 – bdesham 2013-04-11 14:23:52

+0

看看最後一句話。我不知道該在陣列中放置什麼,因爲我不知道該位置的哪個部分需要進行比較。 – 2013-04-11 14:39:18

回答

1

您可以在CLLocation上使用the distanceFromLocation: method獲得兩個位置之間的距離。 (您可以通過myPlacemark.location從CLPlacemark中獲得一個CLLocation。)因此,如果您有一個CLLocation對象數組,並且您想要查找一個塊內(1/20英里或約80米)的數據,您可以做到這一點:

NSMutableArray *locationsWithinOneBlock = [NSMutableArray new]; 
for (CLLocation *location in myLocations) { 
    if ([location distanceFromLocation:targetLocation] <= 80.0) 
     [locationsWithinOneBlock addObject:location]; 
} 

這裏假設你有一個數組,要篩選針對單個CLLocation CLLocation對象myLocations稱爲targetLocation

+0

非常感謝你,這正是我所需要的。 – 2013-04-11 21:01:33

相關問題