מעבר מ'המקום הנוכחי' (גרסה קודמת) ל'חיפוש בקרבת מקום' (חדש)

מפתחים באזור הכלכלי האירופי (EEA)

‫Places SDK ל-Android (גרסה קודמת) תומך ב-Current Place (גרסה קודמת). אם אתם מכירים את Current Place (הגרסה הקודמת), Nearby Search (הגרסה החדשה) כוללת את השינויים הבאים:

  • משתמש במודל תמחור חדש. מידע על תמחור של כל ממשקי ה-API זמין במאמר Places SDK for Android (חדש).

  • צריך לאתחל את האפליקציה באמצעות הקריאה לשיטה Places.initializeWithNewPlacesApiEnabled(). מידע נוסף על בחירת שירות Places API זמין במאמר בנושא הגדרת פרויקט ב-Google Cloud.

  • חובה לבצע אנונימיזציה של השדה. חובה לציין אילו שדות רוצים להחזיר בתגובה. אין רשימת ברירת מחדל של שדות שמוחזרים. אם לא מציינים את הרשימה הזו, השיטות מחזירות שגיאה.

  • בחיפוש בקרבת מקום (חדש) אין תמיכה ב-PlaceLikelihood. בעזרת התכונה החדשה 'חיפוש בקרבת מקום', אפשר להשתמש בסדר התוצאות כדי לקבוע את המיקום הסביר ביותר.

דוגמאות לחיפוש בקרבת מקום (חדש)

מידע נוסף ודוגמאות לשימוש בחיפוש בסביבה (חדש) זמינים במאמר בנושא חיפוש בסביבה (חדש).

שימוש בחיפוש בקרבת מקום (חדש) כדי לקבל את המקום הנוכחי

בדוגמה הבאה אפשר לראות איך מקבלים את המקום הנוכחי באמצעות Nearby Search (חדש) על ידי החלפת השימוש ב-PlacesClient.findCurrentPlace() ב-PlacesClient.searchNearby():

public class MainActivity extends 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, 10);
                List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME);

                SearchNearbyRequest.Builder request = SearchNearbyRequest.builder(circle, placeFields);

                placesClient
                    .searchNearby(request.build())
                    .addOnSuccessListener(response ->
List<Place> places = response.getPlaces();)
                    .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);
    }

  }
}