我当前位置附近的城市或城镇

新手上路,请多包涵

如何从我在android中的当前位置找到附近的城市或城镇。我可以找到最近的地方,例如 ATM、医院。但是,我无法获得最近的城镇或城市名称。

原文由 karthik 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 358
1 个回答

这是一个例子:

https://github.com/yangjiandong/proAndroid4DevCode/blob/master/Full%20Worked%20Sample%20Projects/Chapter_13_Where_Am_I_Part_3/src/com/paad/whereami/WhereAmI.java#L14

      private void updateWithNewLocation(Location location) {
    TextView myLocationText;
    myLocationText = (TextView)findViewById(R.id.myLocationText);

    String latLongString = "No location found";
    String addressString = "No address found";

    if (location != null) {
      double lat = location.getLatitude();
      double lng = location.getLongitude();
      latLongString = "Lat:" + lat + "\nLong:" + lng;

      double latitude = location.getLatitude();
      double longitude = location.getLongitude();
      Geocoder gc = new Geocoder(this, Locale.getDefault());

      try {
        List<Address> addresses = gc.getFromLocation(latitude, longitude, 1);
        StringBuilder sb = new StringBuilder();
        if (addresses.size() > 0) {
          Address address = addresses.get(0);

          for (int i = 0; i < address.getMaxAddressLineIndex(); i++)
            sb.append(address.getAddressLine(i)).append("\n");

          sb.append(address.getLocality()).append("\n");
          sb.append(address.getPostalCode()).append("\n");
          sb.append(address.getCountryName());
        }
        addressString = sb.toString();
      } catch (IOException e) {}
    }

    myLocationText.setText("Your Current Position is:\n" +
                            latLongString + "\n\n" + addressString);
  }

  private final LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
      updateWithNewLocation(location);
    }

原文由 Dongsun 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题