莫道桑榆晚,为霞尚满天。这篇文章主要讲述如何在Android应用程序中使用Geocoder在特定位置找到大陆相关的知识,希望能为你提供帮助。
i am developing android application using Geocoder services,
I have an application where I try to get address of a location based on
thelatitude,longitude coordinates its working fine.
my problem is how to get continent of particular address.
例如:double lat = 17; double lon = 78.49;
【如何在Android应用程序中使用Geocoder在特定位置找到大陆】List addresses = new Geocoder(Shout.this,Locale.getDefault())。getFromLocation(lat,lon,1);
我使用此代码输出的是印度,海德拉巴这个地址相关如何查找大陆,请帮我一些有价值的解决方案。
我正在使用地理编码器动态获取国家名称是他们有机会获得大陆名称以及country.it很难静态维护我需要动态任何免费服务找到基于大陆的服务
提前致谢
答案我不认为Google的API会提供此类信息。我能想到的唯一解决方案是使用某种静态数据结构将国家/地区名称映射到大陆名称(您可能必须以某种方式找到自己,例如通过抓取this网页...)。然后,您可以文本搜索GeoCoder为您提供的字符串,并返回与最接近的匹配国家/地区名称相对应的大陆(这将是您的字符串映射中的关键字)。 (您还必须处理美国地址的特殊情况,令人讨厌的是,仅以州代码结束)
另一答案由于我们的Continents数量有限,因此最好使用静态数据列表。
我们可以使用下面
json_str
(找到here)有CountryCode &
Continent
String json_str = "{"AD":"Europe","AE":"Asia","AF":"Asia","AG":"North America","AI":"North America","AL":"Europe","AM":"Asia","AN":"North America","AO":"Africa","AQ":"Antarctica","AR":"South America","AS":"Australia","AT":"Europe","AU":"Australia","AW":"North America","AZ":"Asia","BA":"Europe","BB":"North America","BD":"Asia","BE":"Europe","BF":"Africa","BG":"Europe","BH":"Asia","BI":"Africa","BJ":"Africa","BM":"North America","BN":"Asia","BO":"South America","BR":"South America","BS":"North America","BT":"Asia","BW":"Africa","BY":"Europe","BZ":"North America","CA":"North America","CC":"Asia","CD":"Africa","CF":"Africa","CG":"Africa","CH":"Europe","CI":"Africa","CK":"Australia","CL":"South America","CM":"Africa","CN":"Asia","CO":"South America","CR":"North America","CU":"North America","CV":"Africa","CX":"Asia","CY":"Asia","CZ":"Europe","DE":"Europe","DJ":"Africa","DK":"Europe","DM":"North America","DO":"North America","DZ":"Africa","EC":"South America","EE":"Europe","EG":"Africa","EH":"Africa","ER":"Africa","ES":"Europe","ET":"Africa","FI":"Europe","FJ":"Australia","FK":"South America","FM":"Australia","FO":"Europe","FR":"Europe","GA":"Africa","GB":"Europe","GD":"North America","GE":"Asia","GF":"South America","GG":"Europe","GH":"Africa","GI":"Europe","GL":"North America","GM":"Africa","GN":"Africa","GP":"North America","GQ":"Africa","GR":"Europe","GS":"Antarctica","GT":"North America","GU":"Australia","GW":"Africa","GY":"South America","HK":"Asia","HN":"North America","HR":"Europe","HT":"North America","HU":"Europe","ID":"Asia","IE":"Europe","IL":"Asia","IM":"Europe","IN":"Asia","IO":"Asia","IQ":"Asia","IR":"Asia","IS":"Europe","IT":"Europe","JE":"Europe","JM":"North America","JO":"Asia","JP":"Asia","KE":"Africa","KG":"Asia","KH":"Asia","KI":"Australia","KM":"Africa","KN":"North America","KP":"Asia","KR":"Asia","KW":"Asia","KY":"North America","KZ":"Asia","LA":"Asia","LB":"Asia","LC":"North America","LI":"Europe","LK":"Asia","LR":"Africa","LS":"Africa","LT":"Europe","LU":"Europe","LV":"Europe","LY":"Africa","MA":"Africa","MC":"Europe","MD":"Europe","ME":"Europe","MG":"Africa","MH":"Australia","MK":"Europe","ML":"Africa","MM":"Asia","MN":"Asia","MO":"Asia","MP":"Australia","MQ":"North America","MR":"Africa","MS":"North America","MT":"Europe","MU":"Africa","MV":"Asia","MW":"Africa","MX":"North America","MY":"Asia","MZ":"Africa","NA":"Africa","NC":"Australia","NE":"Africa","NF":"Australia","NG":"Africa","NI":"North America","NL":"Europe","NO":"Europe","NP":"Asia","NR":"Australia","NU":"Australia","NZ":"Australia","OM":"Asia","PA":"North America","PE":"South America","PF":"Australia","PG":"Australia","PH":"Asia","PK":"Asia","PL":"Europe","PM":"North America","PN":"Australia","PR":"North America","PS":"Asia","PT":"Europe","PW":"Australia","PY":"South America","QA":"Asia","RE":"Africa","RO":"Europe","RS":"Europe","RU":"Europe","RW":"Africa","SA":"Asia","SB":"Australia","SC":"Africa","SD":"Africa","SE":"Europe","SG":"Asia","SH":"Africa","SI":"Europe","SJ":"Europe","SK":"Europe","SL":"Africa","SM":"Europe","SN":"Africa","SO":"Africa","SR":"South America","ST":"Africa","SV":"North America","SY":"Asia","SZ":"Africa","TC":"North America","TD":"Africa","TF":"Antarctica","TG":"Africa","TH":"Asia","TJ":"Asia","TK":"Australia","TM":"Asia","TN":"Africa","TO":"Australia","TR":"Asia","TT":"North America","TV":"Australia","TW":"Asia","TZ":"Africa","UA":"Europe","UG":"Africa","US":"North America","UY":"South America","UZ":"Asia","VC":"North America","VE":"South America","VG":"North America","VI":"North America","VN":"Asia","VU":"Australia","WF":"Australia","WS":"Australia","YE":"Asia","YT":"Africa","ZA":"Africa","ZM":"Africa","ZW":"Africa"}";
从
Geocoder()
我们可以得到CountryCode
如下:try {JSONObject jsonObject = new JSONObject(json_str);
Geocoder geocoder = new Geocoder(this, Locale.ENGLISH);
List<
Address>
addresses = geocoder.getFromLocation(latitude, longitude, 1);
if (addresses.size() >
0) {Address fetchedAddress = addresses.get(0);
// getCountryCode from Address
String countryCode = fetchedAddress.getCountryCode();
// get continentName here
String continentName = jsonObject.getString(countryCode);
}} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
推荐阅读
- 如何在tid xxxxx(Thread-X)中解决Android致命信号11(SIGSEGV),代码1,故障地址0x0()
- 从AppWidgetProvider到Broadcastreceiver的意图
- 如何让Android搜索栏顺利移动()
- Android中的包含布局已拉长
- 最好的开源渗透和安全测试(黑客)Linux操作系统
- 5个最佳高级足球俱乐部网站模板
- 5个最佳高级酒吧(啤酒)网站HTML模板
- 十大最佳的Android本机Snack通知替换库
- 十大Java程序员应该在2019年学习的工具