Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java地理编码-将纬度和经度转换为地址_Java_Android_Google Geocoder - Fatal编程技术网

Java地理编码-将纬度和经度转换为地址

Java地理编码-将纬度和经度转换为地址,java,android,google-geocoder,Java,Android,Google Geocoder,我需要为我的Android应用程序的名称,我的汽车目前所在的城市 我有纬度和经度,我想用地址中的地理编码器将其转换,然后得到城市 我读了一些章节,但因为我是新手,所以我不明白其中的线索 请问谁能帮我怎么做 编辑: 我不在我的应用程序中使用此地理编码。我想在我的Java web服务中使用它,我想我必须使用HTTPRequest来实现这一点,是吗?还有谷歌api url。你要找的是 本课程应帮助您完成以下内容: 编辑:根据您的评论,那么不,您不能在普通Java web服务上使用Geocoder类。尽

我需要为我的Android应用程序的名称,我的汽车目前所在的城市

我有纬度和经度,我想用地址中的地理编码器将其转换,然后得到城市

我读了一些章节,但因为我是新手,所以我不明白其中的线索

请问谁能帮我怎么做

编辑:


我不在我的应用程序中使用此地理编码。我想在我的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();
}