gpt4 book ai didi

Android Geocoder 获取管理区域的简称

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:16 25 4
gpt4 key购买 nike

当使用谷歌地图 API 时,对于管理区域,它会为您提供长名称和短名称,例如。

{
"long_name": "Victoria",
"short_name": "VIC",
"types": [
"administrative_area_level_1",
"political"
]
}

然而,当使用 android 的本地地理编码器时,我只得到长名称(在本例中为“Victoria”)。有没有办法在 android 中获取管理区域的简称,而不是集成 google maps geocoding API?

最佳答案

我要保持简短,我的位置实现有点不同。因为这花了我几个小时。

首先我制作了一个 map 列表来查找州名称,然后将其转换为 2 个字母的代码,如下所示:

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

然后我在完成所有 hocus pocus 之后将其附加到 Location String 结果中以获取类似

的地址
    Address address = addressList.get(0);
String state = states.get(address.getAdminArea());
result = address.getLocality() + ", " + state;

我希望你比我先得到这个,但我只是决定把它提供给任何需要它的人。修复它时我正好在这个页面上。

注意: map (不是真正的位置图)列表包含加拿大“州”和其他一些使用缩写的地方。

关于Android Geocoder 获取管理区域的简称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29908809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com