रूट की खास जानकारी देने वाला एपीआई

रूट की खास जानकारी देने वाला एपीआई, लास्ट माइल फ़्लीट सॉल्यूशन प्रॉडक्ट है. इसे DriverSDK. इसकी मदद से, किसी वाहन के रास्ते की जानकारी हासिल की जा सकती है, अपडेट के लिए लिसनर का इस्तेमाल करके या एक बार फ़ेच करके, लगातार अपडेट किया जा सकता है. कॉन्टेंट बनाने रूट की खास जानकारी देने वाला एपीआई, नीचे दी गई जानकारी के साथ काम करता है:

  • पूरे रास्ते का प्लान, जिसमें वाहन स्टॉप की जगह, यात्रा में लगने वाला समय, और दूरी शामिल हैं
  • हर स्टॉप के बीच का रूट पॉलीलाइन पथ.

इस दस्तावेज़ में आपके ऐप्लिकेशन के एपीआई के साथ इंटिग्रेशन के चरणों की जानकारी दी गई है.

ज़रूरी शर्तें

  • यह ज़रूरी है कि आप ऐल्फ़ा का इस्तेमाल करके अपना Android ऐप्लिकेशन चला रहे हों ड्राइवर SDK v4.1.0 या इसके बाद के वर्शन का चैनल. ऐल्फ़ा चैनल उपलब्ध है Maven आर्टफ़ैक्ट आईडी के लिए, transportation-driver-alpha का इस्तेमाल करके.
  • एपीआई, Fleet Engine से मिली रूट की जानकारी का इस्तेमाल डिलीवरी एपीआई. यह जानकारी, ड्राइवर SDK टूल पर मौजूद एपीआई की मदद से दी जा सकती है (DeliveryDriverApi) या सीधे Fleet Engine पर भेजें.

इंटिग्रेशन का तरीका

इस सेक्शन में, Android ड्राइवर ऐप्लिकेशन को इंटिग्रेट करने की बुनियादी जानकारी दी गई है को ट्रैक करने की सुविधा मिलती है. इन निर्देशों के आधार पर ये आकलन किए जाते हैं:

  • आपके पास एक ऐसा Android ऐप्लिकेशन है जिसे पहले ही ड्राइवर का SDK टूल
  • आपने अपने ऐप्लिकेशन में कॉन्टेक्स्ट के साथ DeliveryDriverApi शुरू किया है ऑब्जेक्ट को ढूंढने की सुविधा

यहां जाएं: Android के लिए ड्राइवर SDK टूल का इस्तेमाल शुरू करना देखें.

चरण 0 - रास्ता सेटअप

अगर आपने Fleet Engine को पहले ही सेट अप कर लिया है, तो इस चरण को छोड़ा जा सकता है वाहन के स्टॉप और डिलीवरी के टास्क बनाए जा सकते हैं.

Fleet Engine पर स्टॉप और टास्क की जानकारी लोड करने के लिए, आपको डिलीवरी वाहन की ज़रूरत होगी किसी मान्य रूट को असाइन किया गया है. ऐसा इसलिए है, क्योंकि रूट की खास जानकारी वाले एपीआई के लिए मान्य जानकारी ज़रूरी है डेटा फ़ेच करने के लिए रूट देता है. मान्य रास्तों में कई सारी चीज़ें शामिल होती हैं वेपॉइंट और स्टॉप, और एक स्टॉप सिर्फ़ तब मौजूद हो सकता है, जब उससे कम से कम एक जुड़ा हो टास्क. ज़्यादा जानकारी के लिए, Fleet Engine API को इंटिग्रेट करने से जुड़ी गाइड हमारा वीडियो देखें.

पहला चरण - एपीआई शुरू करें

स्टॉप और टास्क के लिए मान्य रास्ता तय करने के बाद, ये काम किए जा सकते हैं रूट की खास जानकारी वाले एपीआई को शुरू करना. प्रोसेस शुरू करने से फ़्रेमवर्क मिलता है यह फ़्लीट इंजन और एपीआई के बीच कनेक्शन के लिए ज़रूरी है. द रूट जानकारी वाले एपीआई को उसी कॉन्टेक्स्ट ऑब्जेक्ट से शुरू किया जाना चाहिए जिसका इस्तेमाल आपने किया था ड्राइवर SDK में DeliveryDriverApi शुरू करें, क्योंकि ऑब्जेक्ट वाहन का वही आईडी डालें जो आपके DriverContext ऑब्जेक्ट में पहले दिया गया था. नीचे दिए गए उदाहरण में, RouteOverviewApi का इंस्टेंस बनाने का तरीका बताया गया है.


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

दूसरा चरण - रास्ता बदलने से जुड़े इवेंट के लिए वाहन रजिस्टर करें

आपने एपीआई शुरू कर लिया है, इसलिए अब VehicleRouteOverview का इस्तेमाल किया जा सकता है ऑब्जेक्ट है. इससे आपका ऐप्लिकेशन का इस्तेमाल किया जा सकता है. इवेंट अपडेट और रूट वापस पाने की सुविधा देने के लिए, एपीआई इवेंट लिसनर का इस्तेमाल करें.

जब किसी स्टॉप का पाथ असाइन होता है, तो रास्ते में बदलाव होता है वाहन को अपडेट किया जाता है, स्टॉप को फिर से व्यवस्थित किया जाता है या जब फ़्लीट इंजन ETA की जानकारी.


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

तीसरा चरण - एपीआई चालू करना

अब जब आप रास्ते की जानकारी का इस्तेमाल करने के लिए तैयार हैं, तो आपको एपीआई चालू करना होगा इसकी मदद से यह वाहनों से जुड़ी गतिविधियों का जवाब दे पाता है. याद रखें कि एपीआई को अक्षम स्थिति से बचा जा सकता है.

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);
}

रास्ते की खास जानकारी की इमेज दिखाने वाला स्क्रीनशॉट

इससे यह व्यू, दाईं ओर दिए गए स्क्रीनशॉट जैसा दिखता है:

पांचवां चरण - रास्ते का स्नैपशॉट पाना

अगर आपको यह सुविधा चाहिए कि आपका ऐप्लिकेशन, एक बार इस्तेमाल किया जाने वाला कॉल करे, तो नहीं है, तो आप नीचे दिए गए तरीके का इस्तेमाल करके उसे वापस पा सकते हैं डेटा:

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

इवेंट लिसनर के ज़रिए रूट अपडेट पाने की सदस्यता लेने के बजाय, ऐसा किया जा सकता है.

छठा चरण - स्टोरेज खाली करना

अगर आपके ऐप्लिकेशन को अब रास्ते की खास जानकारी देने वाली सुविधा की ज़रूरत नहीं है, तो आपको यह पक्का करना चाहिए आपने स्टोरेज खाली कर लिया है. क्लीनअप करने से ग़ैर-ज़रूरी मेमोरी, प्रोसेसिंग, और आपके ऐप्लिकेशन में नेटवर्क खपत.

किसी इवेंट लिसनर को हटाना

अगर कोई चुनिंदा लिसनर अब उपलब्ध नहीं है, तो आपको इवेंट लिसनर को हटाना चाहिए ज़रूरी है.

vehicleRouteOverview.removeOnRouteChangedEventListener(listener);

सभी इवेंट लिसनर को हटाएं

क्लीनअप रूटीन के तहत, एक बार में रजिस्टर किए गए सभी अलग-अलग इवेंट लिसनर को हटाया जा सकता है.

vehicleRouteOverview.clearEventListeners();

रूट की खास जानकारी वाले एपीआई के इंस्टेंस मिटाएं

अगर रास्ते की खास जानकारी की ज़रूरत नहीं है या ट्रैक किए जा रहे वाहन का आईडी बदल गया है, तो इंटरनल रेफ़रंस हटाने के लिए इस एपीआई का इस्तेमाल करें.

vehicleRouteOverview.clearInstance();