PlaceAutoComplete不能准确地转换为地址

时间:2016-04-06 18:37:53

标签: android google-places-api reverse-geocoding

我有一个PlaceAutoComplete,通过它我可以在下面的屏幕截图中选择第一个结果:

enter image description here

然后我通过以下代码将其翻译成地址:

  Geocoder geocoder = new Geocoder(this, Locale.getDefault());

    try {
        List<Address> addressList = geocoder.getFromLocation(endLocation.getLatLng().latitude, endLocation.getLatLng().longitude, 1);

        if (addressList != null && addressList.size() > 0) {

            // TODO -=- Destination city check

            Address address = addressList.get(0);
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {
                sb.append(address.getAddressLine(i)).append("\n");
            }

            // Update screen with Location
                endLocationOnScreen.setText(sb.toString());


        }


    } catch (IOException e) {
        e.printStackTrace();
    }

在屏幕上查看结果:

enter image description here

地址翻译得很糟糕 - 你可能会认为这是公平的。但在某些情况下,存在巨大差异。

例如,搜索“L&amp; T South City Apartments”(位于班加罗尔),在AutoPlaceComplete中显示地址为8B Cross Road,Arekere,但结果是“270,8B Cross Road,Santrupthi Nagar,JP Nagar” - 几个街道之外。

问题在准确性方面并不多,但在用户体验方面。他们从屏幕上选择的内容中看到了其他内容。

我如何克服这个问题?有没有办法让AutoComplete上显示的内容显示在屏幕上以显示给用户?

1 个答案:

答案 0 :(得分:0)

PlaceAutoComplete api为每个地方返回一个placeid。您可以使用此placeid来使用下面的google api获取准确的地方详情

https://maps.googleapis.com/maps/api/place/details