如何使用GPS在Android中找到地点或建筑物名称而不是地址?

时间:2016-02-17 07:21:24

标签: android gps android-location android-gps

我想要实际的地方或建筑物名称而不是使用GPS的andoird app中的地址。

例如:如果我在购物中心,我的应用程序应该显示我在XXXX商城。

目前我正在使用纬度和经度获取地址。

如果遵循此http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/

1 个答案:

答案 0 :(得分:2)

通过使用Google Geocoder,您将能够实现您所寻求的目标。它会返回一个Address对象,其中包含您传递给它的latitudelongitude中所有位置的相关信息。下面是一个如何使用它的例子:

    if (Geocoder.isPresent()) {
        Geocoder gc = new Geocoder(context);
        List<Address> addresses = gc.getFromLocation(latitude, longitude, 1);
        // do stuff with addresses
    }

如果它无法返回一个好的Address对象,您仍然可以尝试使用url方法:

    URL url = new URL("http://maps.googleapis.com/maps/api/geocode/json?latlng=" + String.valueOf(latitude) + "," + String.valueOf(longitude) + "&sensor=false&language=" + Locale.getDefault().getLanguage());
    HttpURLConnection connection = (HttpURLConnection)url.openConnection();

    InputStream in = connection.getInputStream();
    JSONObject responseData;
    try {
        Scanner s = new Scanner(in).useDelimiter("\\A");
        try {
            String text = s.next();
            responseData = new JSONObject(text);
        } finally {
            s.close();
        }
    } finally {
        in.close();
    }

    // Do stuff with responseData, all the usefull informations are in this payload