نقل البيانات من ميزة "المكان الحالي" (القديمة) إلى ميزة "البحث عن أماكن قريبة" (الجديدة)

المطوّرون في المنطقة الاقتصادية الأوروبية

تتيح حزمة تطوير البرامج Places SDK for Android (الإصدار القديم) استخدام المكان الحالي (الإصدار القديم). إذا كنت معتادًا على استخدام ميزة "الموقع الجغرافي الحالي" (الإصدار القديم)، ستلاحظ أنّ ميزة البحث القريب (الإصدار الجديد) تتضمّن التغييرات التالية:

  • يستخدم نموذج تسعير جديدًا. للحصول على معلومات الأسعار الخاصة بجميع واجهات برمجة التطبيقات، يُرجى الاطّلاع على Places SDK لنظام التشغيل Android (إصدار جديد).

  • يجب تهيئة تطبيقك من خلال استدعاء الطريقة Places.initializeWithNewPlacesApiEnabled(). لمزيد من المعلومات حول اختيار خدمة Places API، يُرجى الاطّلاع على إعداد مشروعك على Google Cloud.

  • يجب إخفاء الحقول. يجب تحديد الحقول التي تريد عرضها في الرد. لا توجد قائمة تلقائية بالحقول التي يتم عرضها. إذا حذفت هذه القائمة، ستعرض الطرق رسالة خطأ.

  • لا تتوافق ميزة "البحث القريب" (الجديدة) مع PlaceLikelihood. باستخدام ميزة "البحث القريب" (الجديدة)، يمكنك استخدام ترتيب النتائج لتحديد الموقع الجغرافي الأكثر صلة.

أمثلة على ميزة "البحث في الجوار" (الجديدة)

لمزيد من المعلومات، بالإضافة إلى أمثلة حول كيفية استخدام Nearby Search (New)، يُرجى الاطّلاع على مستندات Nearby Search (New).

استخدام ميزة "البحث القريب" (الجديدة) للحصول على المكان الحالي

يوضّح المثال التالي كيفية الحصول على المكان الحالي باستخدام ميزة "البحث القريب" (الجديدة) من خلال استبدال استخدام 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);
    }

  }
}