تتيح حزمة تطوير برامج الأماكن لأجهزة Android (الإصدار القديم) استخدام خدمة "الموقع الجغرافي الحالي" (الإصدار القديم). إذا كنت معتادًا على استخدام ميزة "الموقع الجغرافي الحالي" (الإصدار القديم)، ستلاحظ التغييرات التالية في ميزة بحث في الجوار (الإصدار الجديد):
يستخدم نموذج أسعار جديدًا. للاطّلاع على معلومات الأسعار الخاصة بجميع واجهات برمجة التطبيقات، يُرجى الرجوع إلى Places SDK لنظام التشغيل Android (الإصدار الجديد).
يجب تهيئة تطبيقك من خلال استدعاء الطريقة
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);
}
}
}