我正在写一个Android应用程序,以获得当前位置的城市名称,我得到的纬度和经度的权利,但我不能得到城市名称.这里是我的代码:
// To get City-Name from coordinates
String cityName = null;
Geocoder gcd = new Geocoder(getBaseContext(), Locale.getDefault());
List<Address> addresses = null;
try {
addresses = gcd.getFromLocation(loc.getLatitude(), loc.getLongitude(), 1);
if (addresses.size() > 0)
System.out.println(addresses.get(0).getLocality());
cityName = addresses.get(0).getLocality();
} catch (IOException e) {
e.printStackTrace();
}
String s = longitude + "\n" + latitude + "\n\nMy Currrent City is: " + cityName;
editLocation.setText(s);
5条答案
按热度按时间goucqfw61#
sauutmhj2#
在这种情况下你必须使用geocode API,这会返回一个json响应,解析它,“locality”是你需要的城市,Here是正确的文档。
http://maps.google.com/maps/api/geocode/json?address=19.701989,72.774733&sensor=false
r7xajy2e3#
试试这个代码
f4t66c6m4#
我不是本地化方面的Maven,但也许你应该稍微修改一下代码,以更清楚地了解你得到的结果。
如果你得到了“未找到”,你可以更深入。
lf3rwulv5#
这花了我一段时间才得到(大量的谷歌和试错),但它的工作!:)享受和感谢耶稣基督。
结果:您位于北卡罗来纳州夏洛特市****结果2:您位于英国伦敦