Migrate from Current Place (Legacy) to Nearby Search (New)

European Economic Area (EEA) developers

Places SDK for Android (Legacy) supports Current Place (Legacy) . If you are familiar with the Current Place (Legacy), Nearby Search (New) makes the following changes:

  • Uses a new pricing model. For pricing information for all APIs, see Places SDK for Android (New) .

  • You must initialize your app by calling the Places.initializeWithNewPlacesApiEnabled() method. For more information on selecting the Places API service, see Set up your Google Cloud project .

  • Field masking is required. You must specify which fields you want returned in the response. There is no default list of returned fields. If you omit this list, the methods return an error.

  • Nearby Search (New) does not support PlaceLikelihood . With Nearby Search (New), you can use the result order to determine the most likely location.

Nearby Search (New) examples

For more information, as well as examples of how to use Nearby Search (New), see the Nearby Search (New) documentation.

Use Nearby Search (New) to get the current place

The following sample demonstrates how to get the current place with Nearby Search (New) by replacing the use of PlacesClient.findCurrentPlace() with PlacesClient.searchNearby() :

  public 
  
 class 
 MainActivity 
  
 extends 
  
 AppCompatActivity 
  
 { 
  
 private 
  
 FusedLocationProviderClient 
  
 fusedLocationProviderClient 
 ; 
  
 @Override 
  
 protected 
  
 void 
  
 onCreate 
 ( 
 @Nullable 
  
 Bundle 
  
 savedInstanceState 
 ) 
  
 { 
  
 // ... 
  
 // get permission 
  
 if 
  
 ( 
 ContextCompat 
 . 
 checkSelfPermission 
 ( 
 this 
 , 
  
 Manifest 
 . 
 permission 
 . 
 ACCESS_FINE_LOCATION 
 ) 
  
 == 
  
 PackageManager 
 . 
 PERMISSION_GRANTED 
 ) 
  
 { 
  
 // get location and search 
  
 fusedLocationProviderClient 
  
 . 
 getLastLocation 
 () 
  
 . 
 addOnSuccessListener 
 ( 
  
 this 
 , 
  
 location 
  
 - 
>  
 { 
  
 if 
  
 ( 
 location 
  
 != 
  
 null 
 ) 
  
 { 
  
 LatLng 
  
 latLng 
  
 = 
  
 new 
  
 LatLng 
 ( 
 location 
 . 
 getLatitude 
 (), 
  
 location 
 . 
 getLongitude 
 ()); 
  
 CircularBounds 
  
 circle 
  
 = 
  
 CircularBounds 
 . 
 newInstance 
 ( 
 latLng 
 , 
  
 100 
 ); 
  
 List<Place 
 . 
 Field 
>  
 placeFields 
  
 = 
  
 Arrays 
 . 
 asList 
 ( 
 Place 
 . 
 Field 
 . 
 ID 
 , 
  
 Place 
 . 
 Field 
 . 
 DISPLAY_NAME 
 ); 
  
 // Define a list of types to exclude. Adjust this list to suit each application. 
  
 final 
  
 List<String> 
  
 excludedTypes 
  
 = 
  
 Arrays 
 . 
 asList 
 ( 
 "public_bathroom" 
 , 
  
 "beach" 
 ); 
  
 SearchNearbyRequest 
  
 request 
  
 = 
  
 SearchNearbyRequest 
 . 
 builder 
 ( 
 /* location restriction = */ 
  
 circle 
 , 
  
 placeFields 
 ) 
  
 . 
 setExcludedTypes 
 ( 
 excludedTypes 
 ) 
  
 . 
 setRankPreference 
 ( 
 SearchNearbyRequest 
 . 
 RankPreference 
 . 
 DISTANCE 
 ) 
  
 . 
 build 
 (); 
  
 placesClient 
  
 . 
 searchNearby 
 ( 
 request 
 ) 
  
 . 
 addOnSuccessListener 
 ( 
  
 response 
  
 - 
>  
 { 
  
 List<Place> 
  
 places 
  
 = 
  
 response 
 . 
 getPlaces 
 (); 
  
 // do more on the results 
  
 }) 
  
 . 
 addOnFailureListener 
 ( 
  
 exception 
  
 - 
>  
 { 
  
 // handle failure 
  
 }); 
  
 } 
  
 else 
  
 { 
  
 // failed to get location. 
  
 } 
  
 }) 
  
 . 
 addOnFailureListener 
 ( 
  
 e 
  
 - 
>  
 { 
  
 // handle error 
  
 }); 
  
 } 
  
 else 
  
 { 
  
 ActivityCompat 
 . 
 requestPermissions 
 ( 
  
 this 
 , 
  
 new 
  
 String 
 [] 
  
 { 
 Manifest 
 . 
 permission 
 . 
 ACCESS_FINE_LOCATION 
 }, 
  
 PERMISSION_REQUEST_CODE 
 ); 
  
 } 
  
 } 
 } 
 
Create a Mobile Website
View Site in Mobile | Classic
Share by: