从Android中的坐标获取(仅限)城市名称

时间:2014-06-19 15:35:55

标签: android location

正如标题所写,我想得到城市的名称(仅),而不是坐标的地址。我找到了下面的代码,但它返回了我所有的地址,而不仅仅是城市。

Geocoder geoCoder = new Geocoder(this, Locale.getDefault());
    StringBuilder builder = new StringBuilder();
    try {
        List<Address> address = geoCoder.getFromLocation(latitude, longitude, 1);
        int maxLines = address.get(0).getMaxAddressLineIndex();
        for (int i=0; i<maxLines; i++) {
        String addressStr = address.get(0).getAddressLine(i);
        builder.append(addressStr);
        builder.append(" ");
        }

    String finalAddress = builder.toString(); //This is the complete address.
    } catch (IOException e) {}
      catch (NullPointerException e) {}

如果有人可以帮助我,我会非常高兴。 非常感谢!

2 个答案:

答案 0 :(得分:2)

Geocoder geoCoder = new Geocoder(this, Locale.getDefault());
StringBuilder builder = new StringBuilder();
try {
     List<Address> address = geoCoder.getFromLocation(latitude, longitude, 1);
     if (addresses.size() > 0) {
              String city = addresses.get(0).getLocality();
     }
    //the rest of your code

答案 1 :(得分:0)

除了使用try { JSONObject respJson = new JSONObject(response.toString()); JSONArray array = respJson.getJSONArray("compscience"); for(int i=0;i<array.length();i++) { JSONObject obj=array.getJSONObject(i); if(ab.equals(obj.getString("booknmae"))) { single = single +obj.getString("row"); } } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } 外,我认为没有更好的方法来仅获取城市名称。当我们使用getLocality()时,您会看到我们有城市名称,国家名称等。只需分析此函数的输出,就会发现所有位都用“逗号”分隔。城市名称位于第0个索引。

getLocality()