Java地理编码-将纬度和经度转换为地址
我需要为我的Android应用程序的名称,我的汽车目前所在的城市 我有纬度和经度,我想用地址中的地理编码器将其转换,然后得到城市 我读了一些章节,但因为我是新手,所以我不明白其中的线索 请问谁能帮我怎么做 编辑:Java地理编码-将纬度和经度转换为地址,java,android,google-geocoder,Java,Android,Google Geocoder,我需要为我的Android应用程序的名称,我的汽车目前所在的城市 我有纬度和经度,我想用地址中的地理编码器将其转换,然后得到城市 我读了一些章节,但因为我是新手,所以我不明白其中的线索 请问谁能帮我怎么做 编辑: 我不在我的应用程序中使用此地理编码。我想在我的Java web服务中使用它,我想我必须使用HTTPRequest来实现这一点,是吗?还有谷歌api url。你要找的是 本课程应帮助您完成以下内容: 编辑:根据您的评论,那么不,您不能在普通Java web服务上使用Geocoder类。尽
我不在我的应用程序中使用此地理编码。我想在我的Java web服务中使用它,我想我必须使用HTTPRequest来实现这一点,是吗?还有谷歌api url。你要找的是 本课程应帮助您完成以下内容: 编辑:根据您的评论,那么不,您不能在普通Java web服务上使用Geocoder类。尽管如此,还有其他选择。这通常是一个好的开始,也就是说,他们似乎确实有
或者,你可以看看哪一项是开源的反向地理编码服务,尽管与谷歌的服务相比似乎有点有限。你有没有试过看这个API:。请看反向地理编码部分。对不起,忘了说。我不在我的应用程序中使用此地理编码。我有一个java web服务,在那里我不能使用“Geocoder”,是吗?我想我必须通过httprequest和谷歌api进行请求。@aut_silvia:我已经更新了我的答案。我希望这能让你更清楚。@JonathanRamos:老实说,这段代码不是我自己的,因此我包含了源代码。也就是说,某些任务,如资源获取GPS坐标、文件下载等,需要在GUI应用程序上的单独线程上执行,因为将它们托管在主线程上通常会挂起UI,这会降低用户应用程序的交互,在某些情况下,手机也可能关闭应用程序。
public static void getAddressFromLocation(
final Location location, final Context context, final Handler handler) {
Thread thread = new Thread() {
@Override public void run() {
Geocoder geocoder = new Geocoder(context, Locale.getDefault());
String result = null;
try {
List<Address> list = geocoder.getFromLocation(
location.getLatitude(), location.getLongitude(), 1);
if (list != null && list.size() > 0) {
Address address = list.get(0);
// sending back first address line and locality
result = address.getAddressLine(0) + ", " + address.getLocality();
}
} catch (IOException e) {
Log.e(TAG, "Impossible to connect to Geocoder", e);
} finally {
Message msg = Message.obtain();
msg.setTarget(handler);
if (result != null) {
msg.what = 1;
Bundle bundle = new Bundle();
bundle.putString("address", result);
msg.setData(bundle);
} else
msg.what = 0;
msg.sendToTarget();
}
}
};
thread.start();
}