กําลังค้นหาไดรเวอร์ใกล้เคียง

ความสามารถในการวางแผนเส้นทางและการจัดส่งช่วยให้คุณค้นหาคนขับรถที่อยู่ใกล้เคียงได้ด้วยโซลูชัน SearchVehicles API ซึ่งเป็นส่วนหนึ่งของโซลูชันการโดยสารและการจัดส่งแบบออนดีมานด์

SearchVehicles API ช่วยให้คุณสามารถค้นหาผู้ขับขี่ที่อยู่ใกล้เคียงซึ่งพร้อมให้บริการในแอป โซลูชันการโดยสารและการนำส่งแบบออนดีมานด์สำหรับผู้ใช้ทั่วไปที่เหมาะกับงานต่างๆ เช่น การเดินทางหรือการขอให้นำส่งสินค้า SearchVehicles API จะแสดงรายการผู้ขับขี่ที่มีการจัดอันดับตรงกับแอตทริบิวต์ของงานกับแอตทริบิวต์ของยานพาหนะในยานพาหนะของคุณ

แอตทริบิวต์ของงานอาจรวมถึงสิ่งต่อไปนี้

  • จุดรับและส่ง
  • ประเภทยานพาหนะและการเดินทางที่ขอ
  • ความจุที่ต้องการ
  • แอตทริบิวต์การจับคู่อื่นๆ ที่จำเป็น

แอตทริบิวต์ของยานพาหนะอาจรวมถึงสิ่งต่อไปนี้

  • ตำแหน่งสุดท้ายของยานพาหนะที่ทราบ
  • สถานะ ประเภท หรือความจุของรถ
  • แอตทริบิวต์ที่กำหนดเองอื่นๆ

ระบบจะจัดอันดับตามเวลาถึงโดยประมาณ ระยะทาง หรือระยะทางในแนวตรงจากจุดรับสินค้า

โปรดทราบว่าคุณต้องมีสิทธิ์ของผู้ใช้ระดับสูงของบริการ Fleet Engine หรือผู้ใช้ SDK สำหรับผู้บริโภคเพื่อใช้ SearchVehicles API ดูข้อมูลเพิ่มเติมได้ที่การตรวจสอบสิทธิ์และการให้สิทธิ์

การใช้ SearchVehicles API

วิธีใช้ SearchVehicles API

  • สร้าง SearchVehiclesRequest ตามงานที่จะมอบหมาย
  • เรียก SearchVehicles API (vehicleService.searchVehicles) ด้วยคำขอที่สร้างขึ้น
  • ประมวลผล SearchVehicleResponse ที่แสดงผลจาก API

ฟิลด์ SearchVehiclesRequest

ใช้ฟิลด์แอตทริบิวต์ที่จำเป็นต่อไปนี้เพื่อสร้าง SearchVehiclesRequest

ฟิลด์ คำอธิบาย
parent ต้องระบุ ต้องอยู่ในรูปแบบ provider/{provider} ผู้ให้บริการต้องเป็นรหัสโปรเจ็กต์ (เช่น sample-cloud-project) ของโปรเจ็กต์ Google Cloud ที่บัญชีบริการที่เรียกใช้การโทรนี้เป็นสมาชิก
vehicle_types ต้องระบุ ประเภทยานพาหนะที่ขอ ได้แก่ AUTO, TWO_WHEELER, TAXI, TRUCK, BICYCLE หรือ PEDESTRIAN
trip_types ต้องระบุ เฉพาะตัว (การเดินทางเที่ยวเดียวต่อคนขับรถ 1 คน) หรือ SHARED (การเดินทางครั้งละ 1 ครั้งหรือหลายการเดินทางต่อคนขับ 1 คน)
minimum_capacity ต้องระบุ ความจุต่ำสุดของยานพาหนะสำหรับงานใหม่ ทั้งสำหรับผู้โดยสารหรือการนำส่ง
pickup_point ต้องระบุ ตำแหน่งรับงานในพิกัดละติจูด/ลองจิจูด
dropoff_point ไม่บังคับ ตำแหน่งส่งคืนงานในพิกัดละติจูด/ลองจิจูด ต้องช่องนี้หาก TripType มี TripType.SHARED
pickup_radius_meters ต้องระบุ รัศมีหน่วยเป็นเมตรของพื้นที่ค้นหายานพาหนะจากจุดรับสินค้า
order_by ต้องระบุ สั่งซื้อยานพาหนะตามรายการใดรายการหนึ่งต่อไปนี้
  • PICKUP_POINT_ETA คือเวลาถึงโดยประมาณของยานพาหนะที่จุดรับสินค้า
  • PICKUP_POINT_DISTANCE ระยะทางระหว่างยานพาหนะและจุดรับ
  • DROPOFF_POINT_ETA คือเวลาถึงโดยประมาณของยานพาหนะที่จะเดินทางผ่านจุดส่ง
  • PICKUP_POINT_STRAIGHT_DISTANCE ระยะทางตามเส้นตรง (ไม่อยู่ในเส้นทาง) ระหว่างรถยนต์และจุดรับ
จำนวน ต้องระบุ จำนวนสูงสุดของยานพาหนะที่ต้องส่งคืนตั้งแต่ 1 ถึง 50 คัน

ดูเอกสารอ้างอิงเพื่อดูชุดทั้งหมดของ SearchVehicleRequestfields

ตัวอย่าง SearchVehiclesRequest

ส่วนนี้จะแสดงตัวอย่างวิธีสร้าง SearchVehiclesRequest

ตัวอย่างเช่น สมมติว่าคุณมีงานไปรับที่ RestaurantX และรถ 4 คัน

  • ยานพาหนะ 1 อยู่ห่างจาก RestaurantX 3, 500 ม.
  • ยานพาหนะ 2 ที่อยู่ห่างจาก RestaurantX เพียง 100 ม. ซึ่งกำลังเดินทางโดยมีจุดรับส่งที่สถานที่ A และ B
  • Vehicle 3 ซึ่งอยู่ห่างจาก RestaurantX 200 ม. และส่งคืนรถอีก 1 คันที่ไกลมาก
  • ยานพาหนะ 4 อยู่ห่างจาก RestaurantX 1, 000 ม.

SearchVehiclesRequest ต่อไปนี้ส่งคืนยานพาหนะ 4

Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA

SearchVehiclesRequest ต่อไปนี้ส่งคืนยานพาหนะ 3 และ 4:

Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled

SearchVehiclesRequest ต่อไปนี้ส่งคืนยานพาหนะ 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 รวมถึงแอตทริบิวต์ car_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 หรือไม่

ตัวอย่าง SearchVehicles

ตัวอย่างต่อไปนี้แสดงวิธีใช้ API ของ SearchVehicles

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.