2012-12-10 44 views
0

我需要驗證我的應用的用戶是否在美國境內。目前我得到他們的GPS位置,或者如果他們不會分享他們的GPS位置,我要求一個郵政編碼。在這兩種情況下,我都使用CLGeocoder類來請求獲取該位置的CLPlaceMark(通過反向或前向地理編碼)。驗證CLPlaceMark在美國境內

如何使用CLPlaceMark驗證它們是否在美國境內?

回答

0

爲了驗證用戶是否在我的應用程序的美國境內,我決定使用與CLPlaceMark的country屬性進行字符串比較。

CLPlacemark *placemark = nil; 

for (CLPlacemark *extractedPlacemark in placemarks) { 
    if ([extractedPlacemark.country isEqualToString:@"United States"]) { 
      placemark = extractedPlacemark; 
    } 
} 

if (place mark) { 
    // Do something with place mark because its within the United States 
} else { 
    // Let the user know that they must be within the United States to use the app 
} 

它可能不是最好的解決方案,因爲它的字符串比較,但我找不到更好的解決方案。

+0

更好的解決方案應該檢查CountryCode。國家是一個文字,我猜它會被本地化。 – Shuo

0

你會想要反向地理編碼他們的位置。爲此,請查看CLGeocoder課程。

我也覺得this answer可能會有用。

+0

我已經在使用反向和前向地理編碼來獲取CLPlaceMark。我需要知道驗證CLPlaceMark是否在美國境內的最佳方法。現在我正在對CLPlaceMark的country屬性進行原始字符串比較,我需要知道是否有更好的方法。 – robhasacamera