Places SDK ל-Android (מדור קודם) תומך ב-המיקום הנוכחי (מדור קודם). אם אתם מכירים את המיקום הנוכחי (מדור קודם), חיפוש בסביבה (חדש) מבצע את השינויים הבאים:
משתמש במודל תמחור חדש. מידע על תמחור של כל ממשקי ה-API זמין במאמר Places SDK for Android (New).
צריך לאתחל את האפליקציה באמצעות הקריאה לשיטה
Places.initializeWithNewPlacesApiEnabled(). מידע נוסף על בחירת שירות Places API זמין במאמר בנושא הגדרת פרויקט Google Cloud.חובה לבצע אנונימיזציה של השדה. צריך לציין אילו שדות רוצים להחזיר בתגובה. אין רשימת ברירת מחדל של שדות שמוחזרים. אם לא מציינים את הרשימה הזו, השיטות מחזירות שגיאה.
אין תמיכה בחיפוש בסביבה (חדש) ב-
PlaceLikelihood. בעזרת התכונה החדשה 'חיפוש באזור', אפשר להשתמש בסדר התוצאות כדי לקבוע את המיקום הסביר ביותר.
דוגמאות לחיפוש בסביבה (חדש)
מידע נוסף ודוגמאות לשימוש בחיפוש בסביבה (חדש) זמינים במאמר בנושא חיפוש בסביבה (חדש).
שימוש בחיפוש בסביבה (חדש) כדי לקבל את המקום הנוכחי
בדוגמה הבאה אפשר לראות איך מקבלים את המיקום הנוכחי באמצעות חיפוש בסביבה (חדש) על ידי החלפת השימוש ב-PlacesClient.findCurrentPlace() ב-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);
}
}
}