首页 > 解决方案 > 如何使用 Google Places Autocomplete 获取位置的完整地址?

问题描述

我正在使用Google Places Autocomplete. 他们开始输入,当用户单击自动完成列表中的地址时,我希望此地址显示在我的EditText.

例如,当我22 Moyclare Road, Dublin 13, Ireland在下图中单击时,我想22 Moyclare Road, Dublin 13, Ireland在我的Edittext.

<code>在此输入图片说明</code>

但我得到的只是Moyclare Road,像这样:

在此处输入图像描述

我正在使用like:的getName属性,但无论我使用什么属性,我都无法让它显示完整地址。有任何想法吗?placemEditInit.setText(place.getName());

这是我的onActivityResult函数的完整代码:

@Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == AUTOCOMPLETE_REQUEST_CODE) {
      if (resultCode == RESULT_OK) {

        Place place = Autocomplete.getPlaceFromIntent(data);

        mEditInit.setText(place.getName());
      } else if (resultCode == AutocompleteActivity.RESULT_ERROR) {
        // TODO: Handle the error.
        Status status = Autocomplete.getStatusFromIntent(data);
        // Log.i(TAG, status.getStatusMessage());
      } else if (resultCode == RESULT_CANCELED) {
        // The user canceled the operation.
      }
      //  super.onActivityResult(requestCode, resultCode, data);
    }
  }

标签: javaandroidgoogle-mapsgoogle-places-apigoogleplacesautocomplete

解决方案


您需要使用该place.getAddress()方法而不是place.getName()获取某个地点的完整地址。

mEditInit.setText(place.getAddress());

确保您指定地址字段,即Place.Field.ADDRESS. 请参阅 Google 的文档

要获取您正在搜索的爱尔兰地点的完整地址,而不是选择 ,而是22 Moyclare Road, Dublin 13, Ireland从自动完成中选择 Northside 结果,即22 Moyclare Road, Northside, Dublin 13, Ireland

您将获得以下输出getAddress

22 Moyclare Rd, Northside, Dublin 13, D13 W2X2, Ireland

至于如何在搜索栏中显示,请查看相关问题placeautocompletefragment 完整地址的接受答案

希望这可以帮助!


推荐阅读