我需要驗證我的應用的用戶是否在美國境內。目前我得到他們的GPS位置,或者如果他們不會分享他們的GPS位置,我要求一個郵政編碼。在這兩種情況下,我都使用CLGeocoder類來請求獲取該位置的CLPlaceMark(通過反向或前向地理編碼)。驗證CLPlaceMark在美國境內
如何使用CLPlaceMark驗證它們是否在美國境內?
我需要驗證我的應用的用戶是否在美國境內。目前我得到他們的GPS位置,或者如果他們不會分享他們的GPS位置,我要求一個郵政編碼。在這兩種情況下,我都使用CLGeocoder類來請求獲取該位置的CLPlaceMark(通過反向或前向地理編碼)。驗證CLPlaceMark在美國境內
如何使用CLPlaceMark驗證它們是否在美國境內?
爲了驗證用戶是否在我的應用程序的美國境內,我決定使用與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
}
它可能不是最好的解決方案,因爲它的字符串比較,但我找不到更好的解決方案。
你會想要反向地理編碼他們的位置。爲此,請查看CLGeocoder課程。
我也覺得this answer可能會有用。
我已經在使用反向和前向地理編碼來獲取CLPlaceMark。我需要知道驗證CLPlaceMark是否在美國境內的最佳方法。現在我正在對CLPlaceMark的country屬性進行原始字符串比較,我需要知道是否有更好的方法。 – robhasacamera
更好的解決方案應該檢查CountryCode。國家是一個文字,我猜它會被本地化。 – Shuo