【发布时间】:2015-04-04 10:33:55
【问题描述】:
我正在尝试使用 Google Places API 获取附近地点的列表。我已从 Google Devloper Console 启用所需的 API 并拥有有效的 API 密钥。我能够得到我的正确位置。获得当前位置后,我试图获取附近的地点列表,但它返回为空。
我也尝试过给nullPlaceFilter,但结果相同。
private class MyGoogleMapOnMyLocationListener implements
OnMyLocationChangeListener,
ConnectionCallbacks,
OnConnectionFailedListener {
private GoogleApiClient mGoogleApiClient;
@Override
public void onMyLocationChange(Location location) {
if (!hasLastLocation) {
hasLastLocation = true;
mLastLocation = location;
Log.d(LOG_TAG, "Location: " + location.toString());
if (googleMap != null ) {
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(
new LatLng(location.getLatitude(), location.getLongitude()), 16.0f));
if (mGoogleApiClient == null) {
mGoogleApiClient = new GoogleApiClient
.Builder(getActivity())
.addApi(Places.GEO_DATA_API)
.addApi(Places.PLACE_DETECTION_API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
mGoogleApiClient.connect();
}
}
}
}
@Override
public void onConnected(Bundle bundle) {
Log.d(LOG_TAG, "Google Api Client connected.");
if (mGoogleApiClient != null) {
Log.d(LOG_TAG, "Getting nearby places...");
PendingResult<PlaceLikelihoodBuffer> result =
Places.PlaceDetectionApi.getCurrentPlace(mGoogleApiClient, null);
result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
@Override
public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
Log.d(LOG_TAG, "Got results: " + likelyPlaces.getCount() + " place found.");
for (PlaceLikelihood placeLikelihood : likelyPlaces) {
Log.i(LOG_TAG, String.format("Place '%s' has likelihood: %g",
placeLikelihood.getPlace().getName(),
placeLikelihood.getLikelihood()));
}
likelyPlaces.release();
}
});
}
}
@Override
public void onConnectionSuspended(int i) {
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
}
}
这是我的地图Fragment
我已听从Google Places API for Android的指示
我已经尝试过接受这个问题的答案: Show Current Location and Nearby Places and Route between two places using Google Maps API in Android
更新
我已经从 Google Developer Console 中启用了其他与地图相关的 API,并且它工作正常。
【问题讨论】:
-
在我的项目中,我无法识别 Places.GEO_DATA_API 和类似的 Places.*。任何我缺少的 lib 的建议!
-
你有 Places API 吗?
-
我如何确认,我已经添加了 ..gms:play-service:6.5.87 这个到目前为止。
-
将此添加到您的 gradle
compile 'com.google.android.gms:play-services-location:8.1.0'
标签: android google-maps google-places-api