【问题标题】:Verify CLPlaceMark is within the United States验证 CLPlaceMark 在美国境内
【发布时间】:2012-12-13 23:22:41
【问题描述】:

我需要验证我的应用的用户是否在美国境内。目前我得到了他们的 GPS 位置,或者,如果他们不分享他们的 GPS 位置,我要求提供邮政编码。在这两种情况下,我都使用 CLGeocoder 类来请求获取位置的 CLPlaceMark(通过反向或正向地理编码)。

我如何使用 CLPlaceMark 来验证他们是否在美国境内?

【问题讨论】:

    标签: objective-c core-location


    【解决方案1】:

    您需要对他们的位置进行反向地理编码。为此,请查看 CLGeocoder 类。

    我也认为this answer 可能有用。

    【讨论】:

    • 我已经在使用反向和正向地理编码来获取 CLPlaceMark。我需要知道验证 CLPlaceMark 是否在美国境内的最佳方式。现在我正在与 CLPlaceMark 的 country 属性进行原始字符串比较,我需要知道是否有更好的方法。
    【解决方案2】:

    为了验证我的应用的用户是否在美国境内,我决定使用字符串与 CLPlaceMark 的国家/地区属性进行比较。

    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
    }
    

    它可能不是最好的解决方案,因为它是字符串比较,但我找不到更好的解决方案。

    【讨论】:

    • 更好的解决方案应该是检查 CountryCode。 Country 是一个文字,我猜它会被本地化。
    猜你喜欢
    • 2012-05-22
    • 2013-10-09
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 2011-09-21
    相关资源
    最近更新 更多