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

Posted

技术标签:

【中文标题】如何使用 GPS 在 android 中找到地点或建筑物名称而不是地址?【英文标题】:How can i find a place or building name instead of address in android using GPS? 【发布时间】:2016-05-28 18:40:46 【问题描述】:

我想要实际的地点或建筑物名称,而不是使用 GPS 的 andoird 应用程序中的地址。

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

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

如果关注了这个http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/

【问题讨论】:

【参考方案1】:

通过使用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

【讨论】:

完美运行。谢谢

以上是关于如何使用 GPS 在 android 中找到地点或建筑物名称而不是地址?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Android Studio 在模拟器中设置 GPS 位置

如何从gps android检索地区和省份

如何在 Android 上打开 GPS

怎么查两个地点之间的城市

在移动用户时在 Android 应用程序中实现 GPS 导航

腾讯地图怎么做许多标记