New*_*ser 3 android google-maps google-places-api
我想从我从自动完成地点服务获得的预测中获取地点(城市名称、邮政编码等)的详细信息。我的代码如下所示:
Places.GeoDataApi.getAutocompletePredictions(googleApiClient, query, bounds, null)
.setResultCallback(
new ResultCallback<AutocompletePredictionBuffer>() {
@Override
public void onResult(AutocompletePredictionBuffer buffer) {
if (buffer == null)
return;
if (buffer.getStatus().isSuccess()) {
for (AutocompletePrediction prediction : buffer) {
// How to get cityName here
}
}
buffer.release();
}
}, 15, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)
这可能吗?我该如何实施?如果我按 placeId 查找地点详细信息,则无法得到我既不想要的信息:
Places.GeoDataApi.getPlaceById(googleApiClient, placeId)
.setResultCallback(new ResultCallback<PlaceBuffer>() {
@Override
public void onResult(PlaceBuffer places) {
if (places.getStatus().isSuccess()) {
// How to get cityName here
}
places.release();
}
});
Run Code Online (Sandbox Code Playgroud)
您需要Geocode放置结果以取回该信息。
Places.GeoDataApi.getPlaceById(googleApiClient, placeId)
.setResultCallback(new ResultCallback<PlaceBuffer>() {
@Override
public void onResult(PlaceBuffer places) {
if (!places.getStatus().isSuccess()) {
// Request did not complete successfully
return;
}
// Setup Geocoder
Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault());
List<Address> addresses;
// Attempt to Geocode from place lat & long
try {
addresses = geocoder.getFromLocation(
place.getLatLng().latitude,
place.getLatLng().longitude,
1);
if (addresses.size() > 0) {
// Here are some results you can geocode
String ZIP;
String city;
String state;
String country;
if (addresses.get(0).getPostalCode() != null) {
ZIP = addresses.get(0).getPostalCode();
Log.d("ZIP", ZIP);
}
if (addresses.get(0).getLocality() != null) {
city = addresses.get(0).getLocality();
Log.d("city", city);
}
if (addresses.get(0).getAdminArea() != null) {
state = addresses.get(0).getAdminArea();
Log.d("state", state);
}
if (addresses.get(0).getCountryName() != null) {
country = addresses.get(0).getCountryName();
Log.d("country", country);
}
}
} catch (IOException e) {
e.printStackTrace();
}
places.release();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8777 次 |
| 最近记录: |