如何从 iPhone 核心位置获取当前(美国)状态?

发布于 2024-10-02 07:04:27 字数 123 浏览 4 评论 0原文

我希望我的 iOS 应用程序能够显示特定于用户当前所在州的信息(即加利福尼亚州、俄勒冈州等)。这是如何使用核心位置来完成的? CLLocation 类具有坐标 — 如何将其转换为状态? (仅供参考,我不需要更多细节,例如城市或街道)

I'd like my iOS app to display information specific to the user's current state (i.e. California, Oregon, etc). How is this done using core location? The CLLocation class has coordinates—how do I turn that into the state? (FYI I don't need more detail such as city or street)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

べ繥欢鉨o。 2024-10-09 07:04:27

正如 Brad 提到的,您可以使用 Google(或 Mapquest 等)来获取反向地理编码信息。 Google 提供 XML、JSON 或 CSV 格式的数据。因此,您可以使用如下网址:

http://maps.google.com/maps/geo?q=LATITUDE,LONGITUDE&output=csv&sensor=true

So, http://maps.google.com/maps/geo?q=37.032978,-95.620834&output=csv&sensor=true 会将您带到堪萨斯州科菲维尔,您可以从以下位置获取信息那里。

FWIW,如果您使用 MapKit,您还可以使用 MKReverseGeocoder 来获取 MKPlacemark。

As Brad mentioned, you can use Google (or Mapquest, et al) to obtain Reverse Geocode information. Google offers data in XML, JSON, or CSV. So, you could use a URL like:

http://maps.google.com/maps/geo?q=LATITUDE,LONGITUDE&output=csv&sensor=true

So, http://maps.google.com/maps/geo?q=37.032978,-95.620834&output=csv&sensor=true would put you in Coffeyville, KS, and you can grab the info from there.

FWIW, if you are using MapKit, you can also use the MKReverseGeocoder to obtain an MKPlacemark.

明媚如初 2024-10-09 07:04:27

非常老的问题,但接受的答案实际上并没有回答问题。如果你想从 CoreLocation 获取状态,你可以像这样进行反向地理编码:

let geocoder = CLGeocoder()
geocoder.reverseGeocodeLocation(location) { (placemarks, error) in
    if let placemark = placemarks?.first, let state = placemark.administrativeArea, placemark.isoCountryCode == "US" {
        print("Current state = \(state)")
    } else {
        if placemarks?.first?.isoCountryCode != "US" {
            print("Not in the US")
        } else if let error {
            print("Did fail reverse geocode with error: \(error.localizedDescription)")
        } else {
            print("Couldn't find state when reverse geocoding")
        }
    }
}

Very old question, but the accepted answer doesn't actually answer the question. If you want do get the state from CoreLocation you can reverseGeocode like so:

let geocoder = CLGeocoder()
geocoder.reverseGeocodeLocation(location) { (placemarks, error) in
    if let placemark = placemarks?.first, let state = placemark.administrativeArea, placemark.isoCountryCode == "US" {
        print("Current state = \(state)")
    } else {
        if placemarks?.first?.isoCountryCode != "US" {
            print("Not in the US")
        } else if let error {
            print("Did fail reverse geocode with error: \(error.localizedDescription)")
        } else {
            print("Couldn't find state when reverse geocoding")
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文