كجزء من خدمة الرحلات عند الطلب من Mobility، يمكنك العثور على المركبات المجاورة
باستخدام طريقة SearchVehicles
.
تتيح لك طريقة SearchVehicles
العثور على المركبات القريبة المتاحة في سيارتك
تطبيق للأجهزة الجوّالة للمستهلكين يكون الأنسب لرحلة محدّدة أو توصيل
طلبك. تعرض واجهة برمجة التطبيقات SearchVehicles
قائمة مرتّبة من المركبات التي
تطابق سمات الرحلة المطلوبة يتم ترتيب النتائج حسب
اختيارك إما حسب الوقت المقدَّر للوصول أو المسافة أو المسافة على خط مستقيم من نقطة الاستلام.
سمات البحث | سمات المركبات |
---|---|
|
|
استخدام الطريقة SearchVehicles
لاستخدام SearchVehicles
، يُرجى اتّباع العملية العامة التالية:
- يمكنك إنشاء
SearchVehiclesRequest
استنادًا إلى الرحلة المطلوب إسنادها. - استدعاء واجهة برمجة التطبيقات
SearchVehicles
(vehicleService.searchVehicles
) باستخدام الطلب الذي تم إنشاؤه - عالج
SearchVehicleResponse
الذي تم إرجاعه من واجهة برمجة التطبيقات.
حقول SearchVehiclesRequest
استخدِم حقول السمات المطلوبة التالية لإنشاء
SearchVehiclesRequest
:
الحقل | الوصف |
---|---|
عنصر رئيسي | مَعلمة مطلوبة. يجب أن يكون بالتنسيق providers/{provider}. يجب أن يكون مقدّم الخدمة هو رقم تعريف المشروع الخاص بالمشروع على Google Cloud الذي ينتمي إليه حساب الخدمة الذي يجري هذه المكالمة. |
vehicle_types | مَعلمة مطلوبة. أنواع المركبات المطلوبة، إما AUTO أو TWO_WHEELER أو TAXI أو TRUCK أو BICYCLE أو PEDESTRIAN |
trip_types | مَعلمة مطلوبة. "حصرية" (رحلة نشطة واحدة في الوقت لكل سائق) أو مشترَكة (رحلة واحدة أو عدة رحلات في الوقت نفسه لكل سائق). |
minimum_capacity | مَعلمة مطلوبة. الحدّ الأدنى لسعة المركبة المخصّصة لرحلة جديدة إما للركّاب أو عمليات التسليم. |
pickup_point | مَعلمة مطلوبة. موقع الركوب للرحلة بإحداثيات خطوط الطول/العرض. |
dropoff_point | اختياريّ. الموقع الجغرافي لنقطة الوصول في الرحلة بالإحداثيات الجغرافية لخط العرض وخط الطول يكون الحقل مطلوبًا إذا كان trip_types يحتوي على TripType.SHARED. |
pickup_radius_meters | مَعلمة مطلوبة. النطاق الجغرافي بالأمتار لمنطقة البحث عن المركبات من نقطة الاستلام. |
order_by | مَعلمة مطلوبة. يمكنك طلب المركبات بإحدى الطرق التالية:
|
العدد | مَعلمة مطلوبة. الحدّ الأقصى لعدد المركبات المطلوب إرجاعها من 1 إلى 50. |
تصفية | Optional. طلب بحث فلتر يتم تطبيقه عند البحث عن مركبات |
يُرجى مراجعة المستندات المرجعية للاطّلاع على المجموعة الكاملة SearchVehicleRequest.
سيناريوهات طلب SearchVehiclesRequest
يعرض هذا القسم أمثلة على كيفية إنشاء SearchVehiclesRequest
.
على سبيل المثال، لنفترض أن هناك عميلًا يريد أن يتم توصيله من RestaurantX، ولديك أربع مركبات:
- المركبة 1: على بُعد 3500 متر من مطعم "س"
- المركبة 2: على بُعد 100 متر من مطعم RestaurantX مع رحلة نشطة مع خدمة استلام الطلب واذهب إلى الموقعين "أ" و"ب".
- المركبة 3: على بُعد 200 متر من مطعم "س"، وتتوفّر عملية تسليم واحدة متبقّية في مكان بعيد جدًا.
- المركبة 4: على بُعد 1000 متر من مطعم RestaurantX.
يعرض الجدول التالي طلبات مختلفة حسب المركبة التي تعرضها.
إرجاع المركبة 4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA
إرجاع المركبة 3 و4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled
عرض المركبات 2 و3 و4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, current_trips_present = ALL
حقول SearchVehiclesResponse
تتألّف SearchVehiclesResponse
من قائمة من VehicleMatch
كيانات تم ترتيبها
باستخدام السمة order_by المحددة في SearchVehiclesRequest
. على كل
يحتوي كيان VehicleMatch
على الحقول التالية:
الحقل | الوصف |
---|---|
مركَبة | تمثّل هذه السمة العنصر Vehicle ، بما في ذلك السمتَين currency_id وVehicle . |
vehicle_pickup_eta | الوقت المقدَّر للوصول للمركبة في موقع استلام الرحلة الجديدة. هذا هو الوقت المقدّر للوصول للقيادة. |
vehicle_pickup_distance_meter | المسافة بالكيلومترات بين المركبة وموقع استلام الرحلة الجديدة |
vehicle_pickup_straight_line_distance_meter | المسافة المستقيمة بالأمتار بين المركبة وموقع الركوب في الرحلة الجديدة. |
vehicle_dropoff_eta | الطابع الزمني للوقت المقدَّر للوصول للمركبة في موقع استلام الرحلة الجديدة. يُرجى العِلم أنّ الوقت المقدّر للوصول هو القيادة. |
vehicle_trips_waypoints | قائمة بالنقاط المحورية المتبقية، بما في ذلك نقاط الاستلام والتسليم، للرحلات النشطة المخصّصة حاليًا للمركبة |
vehicle_match_type | نوع رحلة المركبة، إما EXCLUSIVE أو BACK_TO_BACK أو CARPOOL أو CARPOOL_BACK_TO_BACK |
للحصول على قائمة كاملة بحقول VehicleMatch
، اطّلِع على:
-
VehicleMatch message
(gRPC) VehicleMatch resource
(REST)
استخدام طلبات البحث المفلترة
يتوافق كل من SearchVehicles
وListVehicles
مع الفلترة حسب سمات المركبة.
باستخدام فلتر طلب البحث.
لا تتيح طلبات البحث باستخدام الفلاتر فلترة سوى السمات المخصّصة للمركبات، ولا يمكن استخدامها للحقول الأخرى. عند استخدامها في بحث يتضمن حقلاً آخر
معايير، مثل minimum_capacity
أو vehicle_types
، طلب البحث عن
كفقرة AND
.
على سبيل المثال، إذا كنت تبحث عن مركبة بسعة 6 مركبات كحد أدنى
فلتر attributes
، مثل السماح باصطحاب الحيوانات الأليفة، سيتم عرض معاييرك فقط.
تلك المركبات المسموح لها بالحيوانات الأليفة والتي يمكنها حمل 6 ركاب على الأقل.
للاطّلاع على بنية طلب البحث للفلتر، راجِع AIP-160. للحصول على أمثلة. للحصول على تفاصيل حول إنشاء سمات المركبة، يُرجى الاطّلاع على القسم "المركبة". الخاصة بالسمات في دليل تعديل حقول المركبات.
مثال على SearchVehicles
يوضّح المثال التالي كيفية استخدام SearchVehicles
API من خلال
مكتبة Java gRPC.
static final String PROJECT_ID = "project-id";
VehicleServiceBlockingStub vehicleService =
VehicleService.newBlockingStub(channel);
String parent = "providers/" + PROJECT_ID;
SearchVehiclesRequest searchVehiclesRequest = SearchVehiclesRequest.newBuilder()
.setParent(parent)
.setPickupPoint( // Grand Indonesia East Mall
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
.setDropoffPoint( // Balai Sidang Jkt Convention Center
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder().setLatitude(-6.213796).setLongitude(106.807195)))
.setPickupRadiusMeters(2000)
.setCount(10)
.setMinimumCapacity(2)
.addTripTypes(TripType.EXCLUSIVE)
.addVehicleTypes(VehicleType.newBuilder().setCategory(Category.AUTO).build())
.setCurrentTripsPresent(CurrentTripsPresent.ANY)
.setFilter("attributes.on_trip=\"false\"")
.setOrderBy(VehicleMatchOrder.PICKUP_POINT_ETA)
.build();
try {
SearchVehiclesResponse searchVehiclesResponse =
vehicleService.searchVehicles(searchVehiclesRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
List<VehicleMatch> vehicleMatches =
searchVehicleResponse.getMatchesList();
// Each VehicleMatch contains a Vehicle entity and information about the
// distance and ETA to the pickup point and drop-off point.