API ภาพรวมเส้นทาง

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

  • แผนเส้นทางทั้งหมด รวมข้อมูลตำแหน่งป้ายจอดรถ เวลาในการเดินทาง ระยะทาง
  • เส้นทางโพลีไลน์ของเส้นทางระหว่างจุดแวะพักแต่ละแห่ง

เอกสารนี้อธิบายขั้นตอนการผสานรวมกับ API สำหรับแอปพลิเคชันของคุณ

ข้อกำหนดเบื้องต้น

  • คุณต้องเรียกใช้แอปพลิเคชัน Android โดยใช้อัลฟ่า ของ DriverSDK เวอร์ชัน 4.1.0 หรือสูงกว่า ช่องทางอัลฟ่าพร้อมใช้งานแล้ว โดยใช้ transportation-driver-alpha สำหรับอาร์ติแฟกต์ของ Maven
  • API จะใช้ข้อมูลเส้นทางที่ Fleet Engine ให้ไว้ผ่านทาง API การนำส่ง ซึ่งจัดหาได้ผ่าน API ใน DriverSDK (DeliveryDriverApi) หรือส่งไปยัง Fleet Engine โดยตรง

ขั้นตอนการผสานรวม

ส่วนนี้จะครอบคลุมขั้นตอนพื้นฐานที่จำเป็นในการผสานรวมแอปไดรเวอร์ของ Android ด้วย API วิธีการเหล่านี้มีสมมติฐานต่อไปนี้

  • คุณมีแอป Android ซึ่งผสานรวมกับ SDK ไดรเวอร์
  • คุณเริ่มต้น DeliveryDriverApi ในแอปด้วยบริบทแล้ว ที่คุณจะพบ

โปรดดู การเริ่มต้นใช้งาน Driver SDK สำหรับ Android เพื่อดูรายละเอียด

ขั้นตอนที่ 0 - การตั้งค่าเส้นทาง

คุณสามารถข้ามขั้นตอนนี้ได้หากคุณตั้งค่า Fleet Engine แล้วและสามารถ สร้างจุดแวะพักยานพาหนะและงานนำส่ง

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

ขั้นตอนที่ 1 - เริ่มต้น API

เมื่อคุณกำหนดเส้นทางที่ถูกต้องโดยมีจุดแวะพักและงานที่เกี่ยวข้องแล้ว คุณสามารถ เริ่มต้น RouteOverview API การเริ่มต้นระบุเฟรมเวิร์ก ซึ่งจำเป็นสำหรับการเชื่อมต่อระหว่าง Fleet Engine กับ API เส้นทาง ควรเริ่มต้น API ภาพรวมด้วยออบเจ็กต์บริบทเดียวกับที่คุณใช้ เริ่มต้น DeliveryDriverApi ใน DriverSDK เนื่องจากออบเจ็กต์อ้างอิง รหัสยานพาหนะเดียวกันที่กำหนดไว้ก่อนหน้านี้ในออบเจ็กต์ DriverContext ดังต่อไปนี้ ตัวอย่างแสดงวิธีสร้างอินสแตนซ์ของ RouteOverviewApi


RouteOverviewApi api = RouteOverviewApi.getInstance();
if (api == null) {
    api = RouteOverviewApi.createInstance(context);
}

ขั้นตอนที่ 2 - ลงทะเบียนรถสำหรับเหตุการณ์การเปลี่ยนเส้นทาง

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

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


vehicleRouteOverview.addOnRouteChangedEventListener(event -> {
    // handle route update events
});

ขั้นตอนที่ 3 - เปิดใช้ API

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

vehicleRouteOverview.setRouteOverviewEnabled(true);

คุณสามารถหยุดการอัปเดตเหล่านี้ชั่วคราวได้ตลอดเวลา โดยเรียกใช้วิธีการเดียวกันด้วย เป็น false

ขั้นตอนที่ 4 - วาดเส้นทางบน Google Maps

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

    GoogleMap googleMap = … // Instance of the Map view you are using
    ImmutableList<RouteToVehicleStop> route = event.newRoute();

    PolylineOptions routePolyline = new PolylineOptions().color(Color.BLUE);
    for (RouteToVehicleStop stop : route) {
        routePolyline.addAll(stop.path());

        MarkerOptions marker =
            new MarkerOptions().position(stop.vehicleStop().getWaypoint().getPosition());
        googleMap.addMarker(marker);
    }

    googleMap.addPolyline(routePolyline);
}

ภาพหน้าจอแสดงรูปภาพภาพรวมเส้นทาง

ซึ่งจะแสดงให้เห็นมุมมองที่คล้ายกับภาพหน้าจอทางด้านขวา

ขั้นตอนที่ 5 - ดูภาพรวมของเส้นทาง

หากคุณต้องการให้แอปเรียกใช้แบบครั้งเดียวเพื่อดึงข้อมูลสแนปชอต ข้อมูลเส้นทางในปัจจุบัน คุณสามารถใช้วิธีต่อไปนี้เพื่อเรียกดูข้อมูล ข้อมูล:

ListenableFuture<ImmutableList<RouteToVehicleStop> future = vehicleRouteOverview.getRouteToVehicleStops();
ImmutableList<RouteToVehicleStop> stops = future.get();

คุณสามารถทำได้แทนการสมัครรับข้อมูลการอัปเดตเส้นทางผ่าน Listener เหตุการณ์

ขั้นตอนที่ 6 - ล้างข้อมูล

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

นำ Listener เหตุการณ์ที่เฉพาะเจาะจงออก

คุณควรนำ Listener เหตุการณ์ออกเมื่อ Listener ที่เฉพาะเจาะจงหายไปแล้ว ตามความจำเป็น

vehicleRouteOverview.removeOnRouteChangedEventListener(listener);

ล้าง Listener เหตุการณ์ทั้งหมด

ในกิจวัตรการล้างข้อมูล คุณสามารถนำ Listener เหตุการณ์ต่างๆ ทั้งหมดที่ลงทะเบียนไว้ได้ออกพร้อมกัน

vehicleRouteOverview.clearEventListeners();

ล้างอินสแตนซ์ API ภาพรวมเส้นทาง

เมื่อไม่จำเป็นต้องใช้ภาพรวมเส้นทางแล้ว หรือรหัสของยานพาหนะที่ติดตามมีการเปลี่ยนแปลง คุณสามารถเรียกใช้ API นี้เพื่อล้างการอ้างอิงภายใน

vehicleRouteOverview.clearInstance();