菜鸟教程小白 发表于 2022-12-12 15:41:30

ios - CLGeocoder:美国各州名称以短代码形式出现


                                            <p><p>我正在使用 iOS 8.0 开发应用程序。</p>

<p>通过下面的链接,我正在分配位置对象,
<a href="https://stackoverflow.com/questions/4152003/how-can-i-get-current-location-from-user-in-ios" rel="noreferrer noopener nofollow">How can I get current location from user in iOS</a> </p>

<p>我的目标是通过当前位置找出城市、州和国家/地区的名称。
使用此链接的答案,我得到了 Apple 地理编码器中使用的地标对象。
<a href="https://stackoverflow.com/questions/14576289/get-current-city-and-country-from-clgeocoder" rel="noreferrer noopener nofollow">Get current city and country from CLGeocoder?</a> </p>

<p>我一切都好,只是</p>

<p><strong>当我得到 Country United States 的州名时。
它给了我简码,而不是给我完整的州名。</strong></p>

<p>例如对于 <code>Alaska</code> 它给了我 <code>AK</code>
   对于 <code>Alabama</code> 它给了我 <code>AL</code></p>

<p>就像这是我的日志,</p>

<pre><code> North Kingstown, RI, United States
</code></pre>

<p><strong>我想要完整的州名,因为我想在我的项目中使用完整的州名。</strong></p>

<p><strong>我通过此代码获取州名,</strong></p>

<pre><code> NSString *stateName=myPlacemark.administrativeArea;
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>带有美国州列表 + ISO 代码的 Swift 5 枚举:</p>
<p> <a href="https://gist.github.com/SergLam/a252dd01324b5e2c04ecbe79cbb6b8fb" rel="noreferrer noopener nofollow">https://gist.github.com/SergLam/a252dd01324b5e2c04ecbe79cbb6b8fb</a> </p>
<pre><code>// https://en.wikipedia.org/wiki/List_of_U.S._state_and_territory_abbreviations
// https://en.wikipedia.org/wiki/ISO_3166-2

// NOTE: - Last two symbols from ISO 3166-2 state code
enum USAState: Int, CaseIterable {
   
    case alabama = 1
    case alaska = 2
    case arizona = 3
    case arkansas = 4
    case california = 5
    case colorado = 6
    case connecticut = 7
    case delaware = 8
    case districtOfColumbia = 9
    case florida = 10
    case georgia = 11
    case hawaii = 12
    case idaho = 13
    case illinois = 14
    case indiana = 15
    case iowa = 16
    case kansas = 17
    case kentucky = 18
    case louisiana = 19
    case maine = 20
    case maryland = 21
    case massachusetts = 22
    case michigan = 23
    case minnesota = 24
    case mississippi = 25
    case missouri = 26
    case montana = 27
    case nebraska = 28
    case nevada = 29
    case newHampshire = 30
    case newJersey = 31
    case newMexico = 32
    case newYork = 33
    case northCarolina = 34
    case northDakota = 35
    case ohio = 36
    case oklahoma = 37
    case oregon = 38
    case pennsylvania = 39
    case rhodeIsland = 40
    case southCarolina = 41
    case southDakota = 42
    case tennessee = 43
    case texas = 44
    case utah = 45
    case vermont = 46
    case virginia = 47
    case washington = 48
    case westVirginia = 49
    case wisconsin = 50
    case wyoming = 51
   
    var displayName: String {
      switch self {
      case .alabama:
            return &#34;Alabama&#34;
      case .alaska:
            return &#34;Alaska&#34;
      case .arizona:
            return &#34;Arizona&#34;
      case .arkansas:
            return &#34;Arkansas&#34;
      case .california:
            return &#34;California&#34;
      case .colorado:
            return &#34;Colorado&#34;
      case .connecticut:
            return &#34;Connecticut&#34;
      case .delaware:
            return &#34;Delaware&#34;
      case .districtOfColumbia:
            return &#34;District of Columbia&#34;
      case .florida:
            return &#34;Florida&#34;
      case .georgia:
            return &#34;Georgia&#34;
      case .hawaii:
            return &#34;Hawaii&#34;
      case .idaho:
            return &#34;Idaho&#34;
      case .illinois:
            return &#34;Illinois&#34;
      case .indiana:
            return &#34;Indiana&#34;
      case .iowa:
            return &#34;Iowa&#34;
      case .kansas:
            return &#34;Kansas&#34;
      case .kentucky:
            return &#34;Kentucky&#34;
      case .louisiana:
            return &#34;Louisiana&#34;
      case .maine:
            return &#34;Maine&#34;
      case .maryland:
            return &#34;Maryland&#34;
      case .massachusetts:
            return &#34;Massachusetts&#34;
      case .michigan:
            return &#34;Michigan&#34;
      case .minnesota:
            return &#34;Minnesota&#34;
      case .mississippi:
            return &#34;Mississippi&#34;
      case .missouri:
            return &#34;Missouri&#34;
      case .montana:
            return &#34;Montana&#34;
      case .nebraska:
            return &#34;Nebraska&#34;
      case .nevada:
            return &#34;Nevada&#34;
      case .newHampshire:
            return &#34;New Hampshire&#34;
      case .newJersey:
            return &#34;New Jersey&#34;
      case .newMexico:
            return &#34;New Mexico&#34;
      case .newYork:
            return &#34;New York&#34;
      case .northCarolina:
            return &#34;North Carolina&#34;
      case .northDakota:
            return &#34;North Dakota&#34;
      case .ohio:
            return &#34;Ohio&#34;
      case .oklahoma:
            return &#34;Oklahoma&#34;
      case .oregon:
            return &#34;Oregon&#34;
      case .pennsylvania:
            return &#34;Pennsylvania&#34;
      case .rhodeIsland:
            return &#34;Rhode Island&#34;
      case .southCarolina:
            return &#34;South Carolina&#34;
      case .southDakota:
            return &#34;South Dakota&#34;
      case .tennessee:
            return &#34;Tennessee&#34;
      case .texas:
            return &#34;Texas&#34;
      case .utah:
            return &#34;Utah&#34;
      case .vermont:
            return &#34;Vermont&#34;
      case .virginia:
            return &#34;Virginia&#34;
      case .washington:
            return &#34;Washington&#34;
      case .westVirginia:
            return &#34;West Virginia&#34;
      case .wisconsin:
            return &#34;Wisconsin&#34;
      case .wyoming:
            return &#34;Wyoming&#34;
      }
    }
   
    var stateCode: String {
      switch self {
      case .alabama:
            return &#34;AL&#34;
      case .alaska:
            return &#34;AK&#34;
      case .arizona:
            return &#34;AZ&#34;
      case .arkansas:
            return &#34;AR&#34;
      case .california:
            return &#34;CA&#34;
      case .colorado:
            return &#34;CO&#34;
      case .connecticut:
            return &#34;CT&#34;
      case .delaware:
            return &#34;DE&#34;
      case .districtOfColumbia:
            return &#34;DC&#34;
      case .florida:
            return &#34;FL&#34;
      case .georgia:
            return &#34;GA&#34;
      case .hawaii:
            return &#34;HI&#34;
      case .idaho:
            return &#34;ID&#34;
      case .illinois:
            return &#34;IL&#34;
      case .indiana:
            return &#34;IN&#34;
      case .iowa:
            return &#34;IA&#34;
      case .kansas:
            return &#34;KS&#34;
      case .kentucky:
            return &#34;KY&#34;
      case .louisiana:
            return &#34;LA&#34;
      case .maine:
            return &#34;ME&#34;
      case .maryland:
            return &#34;MD&#34;
      case .massachusetts:
            return &#34;MA&#34;
      case .michigan:
            return &#34;MI&#34;
      case .minnesota:
            return &#34;MN&#34;
      case .mississippi:
            return &#34;MS&#34;
      case .missouri:
            return &#34;MO&#34;
      case .montana:
            return &#34;MT&#34;
      case .nebraska:
            return &#34;NE&#34;
      case .nevada:
            return &#34;NV&#34;
      case .newHampshire:
            return &#34;NH&#34;
      case .newJersey:
            return &#34;NJ&#34;
      case .newMexico:
            return &#34;NM&#34;
      case .newYork:
            return &#34;NY&#34;
      case .northCarolina:
            return &#34;NC&#34;
      case .northDakota:
            return &#34;ND&#34;
      case .ohio:
            return &#34;OH&#34;
      case .oklahoma:
            return &#34;OK&#34;
      case .oregon:
            return &#34;OR&#34;
      case .pennsylvania:
            return &#34;PA&#34;
      case .rhodeIsland:
            return &#34;RI&#34;
      case .southCarolina:
            return &#34;SC&#34;
      case .southDakota:
            return &#34;SD&#34;
      case .tennessee:
            return &#34;TN&#34;
      case .texas:
            return &#34;TX&#34;
      case .utah:
            return &#34;UT&#34;
      case .vermont:
            return &#34;VT&#34;
      case .virginia:
            return &#34;VA&#34;
      case .washington:
            return &#34;WA&#34;
      case .westVirginia:
            return &#34;WV&#34;
      case .wisconsin:
            return &#34;WI&#34;
      case .wyoming:
            return &#34;WY&#34;
      }
    }
   
    var isoStateCode: String {
      switch self {
      default:
            return &#34;USA-\(self.stateCode)&#34;
      }
    }
   
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - CLGeocoder:美国各州名称以短代码形式出现,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/31158998/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/31158998/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - CLGeocoder:美国各州名称以短代码形式出现