我有一个PlaceAutoComplete,通过它我可以在下面的屏幕截图中选择第一个结果:
然后我通过以下代码将其翻译成地址:
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();
}
在屏幕上查看结果:
地址翻译得很糟糕 - 你可能会认为这是公平的。但在某些情况下,存在巨大差异。
例如,搜索“L&amp; T South City Apartments”(位于班加罗尔),在AutoPlaceComplete中显示地址为8B Cross Road,Arekere,但结果是“270,8B Cross Road,Santrupthi Nagar,JP Nagar” - 几个街道之外。
问题在准确性方面并不多,但在用户体验方面。他们从屏幕上选择的内容中看到了其他内容。
我如何克服这个问题?有没有办法让AutoComplete上显示的内容显示在屏幕上以显示给用户?
答案 0 :(得分:0)
PlaceAutoComplete api为每个地方返回一个placeid。您可以使用此placeid来使用下面的google api获取准确的地方详情
https://maps.googleapis.com/maps/api/place/details