【问题标题】:Android Geocoding Lat/Long getAdminArea() returning full state name not abbreviationAndroid Geocoding Lat/Long getAdminArea() 返回完整的状态名称而不是缩写
【发布时间】:2017-01-29 02:49:15
【问题描述】:

我在纬度和经度上使用内置的 Android 地理编码器,并使用 getAdminArea() 尝试取回 2 个字符的状态缩写,但我正在取回完整的状态名称。

Geocoder geocoder.getFromLocation(latitude, longitude, 1);
String state = addresses.get(0).getAdminArea();
//state = "Ontario" not "ON"

链接到 Android Docs,它说我应该只取回两个字符状态缩写: http://developer.android.com/reference/android/location/Address.html#getAdminArea()

【问题讨论】:

  • 在文档中没有提到它应该只为管理区域返回两个字符。
  • 差不多... Docs:返回地址的行政区域名称,例如“CA”,如果未知则返回null。
  • 这只是一个例子。没有硬性规定只能返回两个字符。

标签: java android location geocoding


【解决方案1】:

您可以使用以下代码。

public static final Map<String, String> STATE_MAP;
static {
    STATE_MAP = new HashMap<String, String>();
    STATE_MAP.put("Alabama", "AL");
    STATE_MAP.put("Alaska", "AK");
    STATE_MAP.put("Alberta", "AB");
    STATE_MAP.put("Arizona", "AZ");
    STATE_MAP.put("Arkansas", "AR");
    STATE_MAP.put("British Columbia", "BC");
    STATE_MAP.put("California", "CA");
    STATE_MAP.put("Colorado", "CO");
    STATE_MAP.put("Connecticut", "CT");
    STATE_MAP.put("Delaware", "DE");
    STATE_MAP.put("District Of Columbia", "DC");
    STATE_MAP.put("Florida", "FL");
    STATE_MAP.put("Georgia", "GA");
    STATE_MAP.put("Guam", "GU");
    STATE_MAP.put("Hawaii", "HI");
    STATE_MAP.put("Idaho", "ID");
    STATE_MAP.put("Illinois", "IL");
    STATE_MAP.put("Indiana", "IN");
    STATE_MAP.put("Iowa", "IA");
    STATE_MAP.put("Kansas", "KS");
    STATE_MAP.put("Kentucky", "KY");
    STATE_MAP.put("Louisiana", "LA");
    STATE_MAP.put("Maine", "ME");
    STATE_MAP.put("Manitoba", "MB");
    STATE_MAP.put("Maryland", "MD");
    STATE_MAP.put("Massachusetts", "MA");
    STATE_MAP.put("Michigan", "MI");
    STATE_MAP.put("Minnesota", "MN");
    STATE_MAP.put("Mississippi", "MS");
    STATE_MAP.put("Missouri", "MO");
    STATE_MAP.put("Montana", "MT");
    STATE_MAP.put("Nebraska", "NE");
    STATE_MAP.put("Nevada", "NV");
    STATE_MAP.put("New Brunswick", "NB");
    STATE_MAP.put("New Hampshire", "NH");
    STATE_MAP.put("New Jersey", "NJ");
    STATE_MAP.put("New Mexico", "NM");
    STATE_MAP.put("New York", "NY");
    STATE_MAP.put("Newfoundland", "NF");
    STATE_MAP.put("North Carolina", "NC");
    STATE_MAP.put("North Dakota", "ND");
    STATE_MAP.put("Northwest Territories", "NT");
    STATE_MAP.put("Nova Scotia", "NS");
    STATE_MAP.put("Nunavut", "NU");
    STATE_MAP.put("Ohio", "OH");
    STATE_MAP.put("Oklahoma", "OK");
    STATE_MAP.put("Ontario", "ON");
    STATE_MAP.put("Oregon", "OR");
    STATE_MAP.put("Pennsylvania", "PA");
    STATE_MAP.put("Prince Edward Island", "PE");
    STATE_MAP.put("Puerto Rico", "PR");
    STATE_MAP.put("Quebec", "QC");
    STATE_MAP.put("Rhode Island", "RI");
    STATE_MAP.put("Saskatchewan", "SK");
    STATE_MAP.put("South Carolina", "SC");
    STATE_MAP.put("South Dakota", "SD");
    STATE_MAP.put("Tennessee", "TN");
    STATE_MAP.put("Texas", "TX");
    STATE_MAP.put("Utah", "UT");
    STATE_MAP.put("Vermont", "VT");
    STATE_MAP.put("Virgin Islands", "VI");
    STATE_MAP.put("Virginia", "VA");
    STATE_MAP.put("Washington", "WA");
    STATE_MAP.put("West Virginia", "WV");
    STATE_MAP.put("Wisconsin", "WI");
    STATE_MAP.put("Wyoming", "WY");
    STATE_MAP.put("Yukon Territory", "YT");
}

public static String getAbbreviationFromUSState(String state) {
    if (STATE_MAP.containsKey(state)) {
        return STATE_MAP.get(state);
    }else{
        return state;
    }
}

【讨论】:

  • 其他国家和州呢?其他国家如何管理?
猜你喜欢
  • 2016-09-18
  • 1970-01-01
  • 2023-03-19
  • 2018-10-23
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-06
相关资源
最近更新 更多