सभी डिवाइसों को देखना

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

इस दस्तावेज़ में नीचे दी गई बातों के बारे में बताया गया है, जो आप कोई फ़्लीट देखते समय कर सकते हैं:

  1. फ़्लीट को ट्रैक करना शुरू करें.
  2. इवेंट सुनें और गड़बड़ियां ठीक करें.
  3. ट्रैकिंग बंद करें.
  4. फ़्लीट को देखते समय, एक वाहन को ट्रैक करना.

फ़्लीट को ट्रैक करना शुरू करना

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

फ़्लीट की जगह की जानकारी देने वाली कंपनी को इंस्टैंशिएट करें

JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी में जगह की जानकारी देने वाली ऐसी सेवा शामिल होती है जो Fleet Engine से कई वाहनों की जानकारी फ़ेच करती है.

इसे इंस्टैंशिएट करने के लिए, यह तरीका अपनाएं:

  1. अपने प्रोजेक्ट आईडी का इस्तेमाल करें. साथ ही, टोकन फ़ेचर का रेफ़रंस इस्तेमाल करें.

  2. वाहन की फ़िल्टर क्वेरी का इस्तेमाल करना वाहन की फ़िल्टर क्वेरी से यह कंट्रोल होता है कि मैप पर कौनसे वाहन दिखाए जाएं. फ़िल्टर को Fleet Engine को भेजा जाता है.

    • मांग पर उपलब्ध सेवाओं के लिए, vehicleFilter का इस्तेमाल करें. साथ ही, ListVehiclesRequest.filter की समीक्षा करें
    • शेड्यूल किए गए टास्क के लिए, deliveryVehicleFilter का इस्तेमाल करें और ListDeliveryVehiclesRequest.filter की समीक्षा करें
  3. बाउंडिंग, वाहन के डिसप्ले के लिए सेट करें. मैप पर वाहनों को दिखाने के लिए, locationRestriction का इस्तेमाल करके, उस इलाके की सीमा तय करें. यह सेट होने तक, जगह की जानकारी देने वाली सेवा चालू नहीं होती. लोकेशन बाउंड को कंस्ट्रक्टर में या कंस्ट्रक्टर के बाद सेट किया जा सकता है.

  4. मैप व्यू शुरू करना.

यहां दिए गए उदाहरणों में, मांग पर और शेड्यूल किए गए टास्क, दोनों के लिए फ़्लीट की जगह की जानकारी देने वाली सेवा देने वाली कंपनी को इंस्टैंशिएट करने का तरीका बताया गया है. इन उदाहरणों में यह भी दिखाया गया है कि लोकेशन प्रोवाइडर को ऐक्टिव बनाने के लिए, कंस्ट्रक्टर में locationRestriction का इस्तेमाल कैसे किया जाता है.

मांग पर यात्राएं

JavaScript

locationProvider =
    new google.maps.journeySharing
        .FleetEngineFleetLocationProvider({
          projectId,
          authTokenFetcher,

          // Optionally, specify location bounds to
          // limit which vehicles are
          // retrieved and immediately start tracking.
          locationRestriction: {
            north: 37.3,
            east: -121.8,
            south: 37.1,
            west: -122,
          },
          // Optionally, specify a filter to limit
          // which vehicles are retrieved.
          vehicleFilter:
            'attributes.foo = "bar" AND attributes.baz = "qux"',
        });

TypeScript

locationProvider =
    new google.maps.journeySharing
        .FleetEngineFleetLocationProvider({
          projectId,
          authTokenFetcher,

          // Optionally, specify location bounds to
          // limit which vehicles are
          // retrieved and immediately start tracking.
          locationRestriction: {
            north: 37.3,
            east: -121.8,
            south: 37.1,
            west: -122,
          },
          // Optionally, specify a filter to limit
          // which vehicles are retrieved.
          vehicleFilter:
            'attributes.foo = "bar" AND attributes.baz = "qux"',
        });

शेड्यूल किए गए टास्क

JavaScript

locationProvider =
    new google.maps.journeySharing
        .FleetEngineDeliveryFleetLocationProvider({
          projectId,
          authTokenFetcher,

          // Optionally, specify location bounds to
          // limit which delivery vehicles are
          // retrieved and immediately make the location provider active.
          locationRestriction: {
            north: 37.3,
            east: -121.8,
            south: 37.1,
            west: -122,
          },
          // Optionally, specify a filter to limit
          // which delivery vehicles are retrieved.
          deliveryVehicleFilter:
            'attributes.foo = "bar" AND attributes.baz = "qux"',
        });

TypeScript

locationProvider =
    new google.maps.journeySharing
        .FleetEngineDeliveryFleetLocationProvider({
          projectId,
          authTokenFetcher,

          // Optionally, specify location bounds to
          // limit which delivery vehicles are
          // retrieved and immediately make the location provider active.
          locationRestriction: {
            north: 37.3,
            east: -121.8,
            south: 37.1,
            west: -122,
          },
          // Optionally, specify a filter to limit
          // which delivery vehicles are retrieved.
          deliveryVehicleFilter:
            'attributes.foo = "bar" AND attributes.baz = "qux"',
        });

locationRestriction को कंस्ट्रक्टर के बाद सेट करने के लिए, बाद में अपने कोड में locationProvider.locationRestriction जोड़ें, जैसा कि इस JavaScript उदाहरण में दिखाया गया है.

   // You can choose to not set locationRestriction in the constructor.
   // In this case, the location provider *DOES NOT START* after this line, because
   // no locationRestriction is set.
   locationProvider = new google.maps.journeySharing.DeliveryFleetLocationProvider({
   ... // not setting locationRestriction here
   });

   // You can then set the locationRestriction *after* the constructor.
   // After this line, the location provider is active.
   locationProvider.locationRestriction = {
     north: 1,
     east: 2,
     south: 0,
     west: 1,
   };

मैप व्यूपोर्ट का इस्तेमाल करके, जगह की जानकारी से जुड़ी पाबंदी सेट करना

मैप व्यू में दिख रहे इलाके से मैच करने के लिए, locationRestriction की सीमाएं भी सेट की जा सकती हैं.

मांग पर यात्राएं

JavaScript

google.maps.event.addListenerOnce(
  mapView.map, 'bounds_changed', () => {
    const bounds = mapView.map.getBounds();
    if (bounds) {
      // If you did not specify a location restriction in the
      // location provider constructor, you may do so here.
      // Location tracking will start as soon as this is set.
      locationProvider.locationRestriction = bounds;
    }
  });

TypeScript

google.maps.event.addListenerOnce(
  mapView.map, 'bounds_changed', () => {
    const bounds = mapView.map.getBounds();
    if (bounds) {
      // If you did not specify a location restriction in the
      // location provider constructor, you may do so here.
      // Location tracking will start as soon as this is set.
      locationProvider.locationRestriction = bounds;
    }
  });

शेड्यूल किए गए टास्क

JavaScript

google.maps.event.addListenerOnce(
  mapView.map, 'bounds_changed', () => {
    const bounds = mapView.map.getBounds();
    if (bounds) {
      // If you did not specify a location restriction in the
      // location provider constructor, you may do so here.
      // Location provider will start as soon as this is set.
      locationProvider.locationRestriction = bounds;
    }
  });

TypeScript

google.maps.event.addListenerOnce(
  mapView.map, 'bounds_changed', () => {
    const bounds = mapView.map.getBounds();
    if (bounds) {
      // If you did not specify a location restriction in the
      // location provider constructor, you may do so here.
      // Location provider will start as soon as this is set.
      locationProvider.locationRestriction = bounds;
    }
  });

मैप व्यू शुरू करें

लोकेशन प्रोवाइडर को बनाने के बाद, मैप व्यू को उसी तरह शुरू करें जैसे किसी वाहन को फ़ॉलो करते समय किया जाता है.

JavaScript जर्नी शेयरिंग लाइब्रेरी लोड होने के बाद, मैप व्यू को शुरू करें और उसे एचटीएमएल पेज में जोड़ें. आपके पेज में ऐसा <div> एलिमेंट होना चाहिए जिसमें मैप व्यू हो. यहां दिए गए उदाहरणों में, <div> एलिमेंट का नाम map_canvas है.=

मांग पर यात्राएं

JavaScript

const mapView = new
    google.maps.journeySharing.JourneySharingMapView({
  element: document.getElementById('map_canvas'),
  locationProviders: [locationProvider],
});

// If you did not specify a vehicle ID in the
// location provider constructor, you may do so here.
// Location tracking will start as soon as this is set.
locationProvider.vehicleId
                        = 'your-vehicle-id';

// Give the map an initial viewport to allow it to
// initialize; otherwise the 'ready' event above may
// not fire. The user also has access to the mapView
// object to customize as they want.
mapView.map.setCenter('Times Square, New York, NY');
mapView.map.setZoom(14);

TypeScript

const mapView = new
    google.maps.journeySharing.JourneySharingMapView({
  element: document.getElementById('map_canvas'),
  locationProviders: [locationProvider],
});

// If you did not specify a vehicle ID in the
// location provider constructor, you may do so here.
// Location tracking will start as soon as this is set.
locationProvider.VehicleId
                        = 'your-vehicle-id';

// Give the map an initial viewport to allow it to
// initialize; otherwise the 'ready' event above may
// not fire. The user also has access to the mapView
// object to customize as they want.
mapView.map.setCenter('Times Square, New York, NY');
mapView.map.setZoom(14);

शेड्यूल किए गए टास्क

JavaScript

const mapView = new
    google.maps.journeySharing.JourneySharingMapView({
  element: document.getElementById('map_canvas'),
  locationProviders: [locationProvider],
});

// If you did not specify a delivery vehicle ID in the
// location provider constructor, you may do so here.
// Location tracking will start as soon as this is set.
locationProvider.deliveryVehicleId
                        = 'your-delivery-vehicle-id';

// Give the map an initial viewport to allow it to
// initialize; otherwise the 'ready' event above may
// not fire. The user also has access to the mapView
// object to customize as they want.
mapView.map.setCenter('Times Square, New York, NY');
mapView.map.setZoom(14);

TypeScript

const mapView = new
    google.maps.journeySharing.JourneySharingMapView({
  element: document.getElementById('map_canvas'),
  locationProviders: [locationProvider],
});

// If you did not specify a delivery vehicle ID in the
// location provider constructor, you may do so here.
// Location tracking will start as soon as this is set.
locationProvider.deliveryVehicleId
                        = 'your-delivery-vehicle-id';

// Give the map an initial viewport to allow it to
// initialize; otherwise the 'ready' event above may
// not fire. The user also has access to the mapView
// object to customize as they want.
mapView.map.setCenter('Times Square, New York, NY');
mapView.map.setZoom(14);

इवेंट सुनें और गड़बड़ियां ठीक करें

फ़्लीट को फ़ॉलो करने के बाद, आपको इवेंट में हुए बदलावों को सुनना होगा और नीचे दिए गए सेक्शन में बताए गए तरीके से, आने वाली गड़बड़ियों को मैनेज करना होगा.

बदलाव से जुड़े इवेंट के लिए सुनना

जगह की जानकारी देने वाले ऐप्लिकेशन का इस्तेमाल करके, वाहन की ऑब्जेक्ट से बेड़े के बारे में मेटा जानकारी हासिल की जा सकती है. मेटा जानकारी में बदलाव करने पर, अपडेट इवेंट ट्रिगर होता है. मेटा जानकारी में, गाड़ी की प्रॉपर्टी शामिल होती हैं. जैसे, नेविगेशन की स्थिति, बाकी दूरी, और कस्टम एट्रिब्यूट.

जानकारी के लिए, यहां दी गई जानकारी देखें:

नीचे दिए गए उदाहरणों में, इन बदलाव इवेंट को सुनने का तरीका बताया गया है.

मांग पर यात्राएं

JavaScript

locationProvider.addListener('update', e => {
  // e.vehicles contains data that may be
  // useful to the rest of the UI.
  for (vehicle of e.vehicles) {
    console.log(vehicle.navigationStatus);
  }
});

TypeScript

locationProvider.addListener('update',
    (e: google.maps.journeySharing.FleetEngineFleetLocationProviderUpdateEvent) => {
  // e.vehicles contains data that may be
  // useful to the rest of the UI.
  if (e.vehicles) {
    for (vehicle of e.vehicles) {
      console.log(vehicle.navigationStatus);
    }
  }
});

शेड्यूल किए गए टास्क

JavaScript

locationProvider.addListener('update', e => {
  // e.deliveryVehicles contains data that may be
  // useful to the rest of the UI.
  if (e.deliveryVehicles) {
    for (vehicle of e.deliveryVehicles) {
      console.log(vehicle.remainingDistanceMeters);
    }
  }
});

TypeScript

locationProvider.addListener('update',
    (e: google.maps.journeySharing.FleetEngineDeliveryFleetLocationProviderUpdateEvent) => {
  // e.deliveryVehicles contains data that may be
  // useful to the rest of the UI.
  if (e.deliveryVehicles) {
    for (vehicle of e.deliveryVehicles) {
      console.log(vehicle.remainingDistanceMeters);
    }
  }
});

गड़बड़ियां सुनें

साथ ही, आपको गाड़ी चलाते समय होने वाली गड़बड़ियों के बारे में पता होना चाहिए और उन्हें ठीक करना चाहिए. वाहन की जानकारी का अनुरोध करने पर, गड़बड़ियां होने पर गड़बड़ी वाले इवेंट ट्रिगर होते हैं.

नीचे दिए गए उदाहरण में इन इवेंट को सुनने का तरीका बताया गया है, ताकि आप गड़बड़ियों को हैंडल कर सकें.

JavaScript

locationProvider.addListener('error', e => {
  // e.error is the error that triggered the event.
  console.error(e.error);
});

TypeScript

locationProvider.addListener('error', (e: google.maps.ErrorEvent) => {
  // e.error is the error that triggered the event.
  console.error(e.error);
});

फ़्लीट को ट्रैक करना बंद करना

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

जगह की जानकारी देने वाली सेवा के दायरे को शून्य पर सेट करना

जगह की जानकारी देने वाली कंपनी को फ़्लीट को ट्रैक करने से रोकने के लिए, जगह की जानकारी देने वाली कंपनी के लिए तय किए गए सीमाओं को शून्य पर सेट करें.

मांग पर यात्राएं

JavaScript

locationProvider.locationRestriction = null;

TypeScript

locationProvider.locationRestriction = null;

शेड्यूल किए गए टास्क

JavaScript

locationProvider.locationRestriction = null;

TypeScript

locationProvider.locationRestriction = null;

मैप व्यू से, जगह की जानकारी देने वाली कंपनी को हटाएं

नीचे दिए गए उदाहरण में, मैप व्यू से जगह की जानकारी देने वाली कंपनी को हटाने का तरीका बताया गया है.

JavaScript

mapView.removeLocationProvider(locationProvider);

TypeScript

mapView.removeLocationProvider(locationProvider);

डिलीवरी फ़्लीट देखते समय, डिलीवरी वाहन को ट्रैक करें

अगर शेड्यूल किए गए टास्क के लिए, मोबिलिटी सेवाओं का इस्तेमाल किया जा रहा है, तो एक ही मैप व्यू में फ़्लीट के साथ-साथ, किसी डिलीवरी वाहन का रास्ता और आने वाले टास्क भी देखे जा सकते हैं. ऐसा करने के लिए, डिलीवरी फ़्लीट की जगह की जानकारी देने वाली सेवा और डिलीवरी वाहन की जगह की जानकारी देने वाली सेवा, दोनों को इंस्टैंशिएट करें. इसके बाद, दोनों को मैप व्यू में जोड़ें. इंस्टैंशिएट होने के बाद, डिलीवरी फ़्लीट की जगह की जानकारी देने वाली सेवा, मैप पर डिलीवरी वाहन दिखाना शुरू कर देती है. नीचे दिए गए उदाहरणों में, दोनों लोकेशन देने वालों को इंस्टैंशिएट करने का तरीका बताया गया है:

JavaScript

deliveryFleetLocationProvider =
    new google.maps.journeySharing
        .FleetEngineDeliveryFleetLocationProvider({
          projectId,
          authTokenFetcher,

          // Optionally, specify location bounds to
          // limit which delivery vehicles are
          // retrieved and immediately start tracking.
          locationRestriction: {
            north: 37.3,
            east: -121.8,
            south: 37.1,
            west: -122,
          },
          // Optionally, specify a filter to limit
          // which delivery vehicles are retrieved.
          deliveryVehicleFilter:
            'attributes.foo = "bar" AND attributes.baz = "qux"',
        });

deliveryVehicleLocationProvider =
    new google.maps.journeySharing
        .FleetEngineDeliveryVehicleLocationProvider({
          projectId,
          authTokenFetcher
        });

const mapView = new
    google.maps.journeySharing.JourneySharingMapView({
  element: document.getElementById('map_canvas'),
  locationProviders: [
    deliveryFleetLocationProvider,
    deliveryVehicleLocationProvider,
  ],
  // Any other options
});

TypeScript

deliveryFleetLocationProvider =
    new google.maps.journeySharing
        .FleetEngineDeliveryFleetLocationProvider({
          projectId,
          authTokenFetcher,

          // Optionally, specify location bounds to
          // limit which delivery vehicles are
          // retrieved and immediately start tracking.
          locationRestriction: {
            north: 37.3,
            east: -121.8,
            south: 37.1,
            west: -122,
          },
          // Optionally, specify a filter to limit
          // which delivery vehicles are retrieved.
          deliveryVehicleFilter:
            'attributes.foo = "bar" AND attributes.baz = "qux"',
        });

deliveryVehicleLocationProvider =
    new google.maps.journeySharing
        .FleetEngineDeliveryVehicleLocationProvider({
          projectId,
          authTokenFetcher
        });

const mapView = new
    google.maps.journeySharing.JourneySharingMapView({
  element: document.getElementById('map_canvas'),
  locationProviders: [
    deliveryFleetLocationProvider,
    deliveryVehicleLocationProvider,
  ],
  // Any other options
});

डिलीवरी वाहन को ट्रैक करने के लिए, मार्कर को पसंद के मुताबिक बनाने की सुविधा का इस्तेमाल करना

फ़्लीट मार्कर पर क्लिक करने पर, डिलीवरी वाहन की जगह की जानकारी देने वाली कंपनी को वाहन को ट्रैक करने की अनुमति देने के लिए, यह तरीका अपनाएं:

  1. मार्कर को पसंद के मुताबिक बनाएं और क्लिक करने के लिए कोई कार्रवाई जोड़ें.

  2. डुप्लीकेट मार्कर से बचने के लिए, मार्कर छिपाएं.

इन चरणों के उदाहरण नीचे दिए गए हैं.

मार्कर को पसंद के मुताबिक बनाना और क्लिक ऐक्शन जोड़ना

JavaScript

// Specify the customization function either separately, or as a field in
// the options for the delivery fleet location provider constructor.
deliveryFleetLocationProvider.deliveryVehicleMarkerCustomization =
  (params) => {
    if (params.isNew) {
      params.marker.addListener('click', () => {
        // params.vehicle.name follows the format
        // "providers/{provider}/deliveryVehicles/{vehicleId}".
        // Only the vehicleId portion is used for the delivery vehicle
        // location provider.
        deliveryVehicleLocationProvider.deliveryVehicleId =
            params.vehicle.name.split('/').pop();
      });
    }
  };

TypeScript

// Specify the customization function either separately, or as a field in
// the options for the delivery fleet location provider constructor.
deliveryFleetLocationProvider.deliveryVehicleMarkerCustomization =
  (params: google.maps.journeySharing.DeliveryVehicleMarkerCustomizationFunctionParams) => {
    if (params.isNew) {
      params.marker.addListener('click', () => {
        // params.vehicle.name follows the format
        // "providers/{provider}/deliveryVehicles/{vehicleId}".
        // Only the vehicleId portion is used for the delivery vehicle
        // location provider.
        deliveryVehicleLocationProvider.deliveryVehicleId =
            params.vehicle.name.split('/').pop();
      });
    }
  };

डुप्लीकेट मार्कर से बचने के लिए मार्कर छिपाना

डिलीवरी वाहन की जगह की जानकारी देने वाली कंपनी से मार्कर छिपाएं, ताकि एक ही वाहन के लिए दो मार्कर रेंडर न हों:

JavaScript

// Specify the customization function either separately, or as a field in
// the options for the delivery vehicle location provider constructor.
deliveryVehicleLocationProvider.deliveryVehicleMarkerCustomization =
  (params) => {
    if (params.isNew) {
      params.marker.setVisible(false);
    }
  };

TypeScript

// Specify the customization function either separately, or as a field in
// the options for the delivery vehicle location provider constructor.
deliveryVehicleLocationProvider.deliveryVehicleMarkerCustomization =
  (params: deliveryVehicleMarkerCustomizationFunctionParams) => {
    if (params.isNew) {
      params.marker.setVisible(false);
    }
  };

आगे क्या करना है