Android反向地理编码

时间:2015-05-23 14:18:19

标签: android google-maps geocoding

我试图从某个位置获取地址。我是在Fragement里面的asynctask中这样做的。所有其他代码都可以正常工作(检查API并根据它设置一些UI内容),但是这部分进行地理编码只是赢了。我在StackOverflow上的其他地方跟踪了一个例子(无法记住确切的主题)。

 TextView locTxt = (TextView) findViewById(R.id.locationText);
                Geocoder geocoder;
                List<Address> addresses;

                Double x = 55.971627;
                Double y = -3.602585;


                try
                {
                    geocoder = new Geocoder(getActivity(), Locale.ENGLISH);
                    addresses = geocoder.getFromLocation(x, y, 1);
                    StringBuilder str = new StringBuilder();
                    if (geocoder.isPresent())
                    {
                        Toast.makeText(getApplicationContext(),
                                "geocoder present", Toast.LENGTH_SHORT).show();
                        Address returnAddress = addresses.get(0);

                        String localityString = returnAddress.getLocality();
                        String city = returnAddress.getCountryName();
                        String region_code = returnAddress.getCountryCode();
                        String zipcode = returnAddress.getPostalCode();

                        str.append(localityString + "");
                        str.append(city + "" + region_code + "");
                        str.append(zipcode + "");

                        locTxt.setText(str);



                    }
                    else
                    {
                        Toast.makeText(getApplicationContext(), "geocoder not present", Toast.LENGTH_SHORT).show();
                    }
                } catch (IOException e) {}

当它到达geocoder.isPresent()的if语句时,if失败并继续执行程序的其余部分。

1 个答案:

答案 0 :(得分:0)

问题出在Android Emulator上。即使您通过命令行设置坐标,仿真器也不会执行GeoCoding代码,因此如果GeoCoder存在则无法检查。在物理设备上工作得很好。