वाहन के फ़ील्ड अपडेट करें

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

  • vehicle_state: इससे वाहन की उपलब्धता का पता चलता है नई यात्राओं के लिए.
  • vehicle_type: वाहन बनाते समय यह फ़ील्ड भरना ज़रूरी है. यह फ़ील्ड, वाहन के मैच के लिए फ़िल्टर की शर्त के तौर पर भी काम कर सकता है. यहां जाएं: वाहन बनाना देखें.
  • attributes[]: टाइप का वैकल्पिक अरे VehicleAttribute. इस्तेमाल की जाने वाली चीज़ें ताकि उन्हें बेहतर बनाने के लिए, वाहनों को खोजने या उनकी सूची बनाने के दौरान फ़िल्टर करने का तरीका.
 

वाहन के फ़ील्ड की पूरी सूची देखने के लिए, यह देखें:

वाहन की स्थिति वाला फ़ील्ड

आपका सिस्टम, वाहन की स्थिति को OFFLINE या ONLINE पर सेट कर सकता है. उदाहरण के लिए, आपके हर दिन सुबह 9 बजे और OFFLINE बजे गाड़ी की स्थिति को ONLINE पर सेट कर सकता है शाम 5 बजे.

ऑफ़लाइन मोड ऑनलाइन मोड
OFFLINE का इस्तेमाल करके बताएं कि कोई वाहन स्वीकार नहीं कर रहा है नई यात्राएं. ध्यान दें कि वाहन अब भी असाइन की गई यात्राएं पूरी कर सकता है, जबकि दर्ज करें.
  • ONLINE स्टेट में बनाया गया Vehicle तुरंत SearchVehicles क्वेरी के जवाब. वाहन खोजें देखें ज़्यादा के लिए विवरण.
  • ONLINE राज्य में बनाए गए वाहनों के लिए, last_location का इस्तेमाल करना चाहिए फ़ील्ड को CreateVehicle कॉल में करें.

वाहन के एट्रिब्यूट का फ़ील्ड

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

उदाहरण के लिए, class नाम का कस्टम एट्रिब्यूट तय करके, अपनी राइडशेयर सेवा के वाहनों को अलग-अलग कैटगरी के हिसाब से बांटा जा सकता है. आप वाहन की कैटगरी के लेवल दिखाने के लिए, नीचे दी गई स्ट्रिंग की वैल्यू दी गई हैं: ECONOMY, STANDARD और LUXURY.

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

इस तरीके से विशेषताओं का इस्तेमाल करने से, आपको कई तरह की सुविधाएं मिल सकती हैं जो इस टूल की मदद से, ख़ास ज़रूरतों वाले वाहनों को खोजा जा सकता है. कस्टम एट्रिब्यूट को क्वेरी फ़िल्टर के तौर पर इस्तेमाल करने के तरीके के बारे में जानने के लिए, वाहन खोजें लेख पढ़ें.

वाहन की विशेषताएं अपडेट करें

UpdateVehicle या UpdateVehicleAttributes का इस्तेमाल करके, वाहन के एट्रिब्यूट अपडेट किए जा सकते हैं. हर attributes कुंजी में सिर्फ़ एक मान प्रति वाहन. आपने attributes का इस्तेमाल करके, कस्टम वाहन एट्रिब्यूट का एलान किया है फ़ील्ड मास्क में डाला जा सकता है और फिर नीचे दिए गए तरीके के आधार पर वैल्यू दी जा सकती हैं.

UpdateVehicle UpdateVehicleAttributes
यह एपीआई सिर्फ़ एक एट्रिब्यूट को अपडेट करने की अनुमति नहीं देता. इसका इस्तेमाल करते समय इस तरीके से, attributes के इस्तेमाल से फ़ील्ड मास्क को फ़ील्ड में शामिल करने पर, इसके पूरा सेट मिलता है वाहन के एट्रिब्यूट के बारे में फिर से बताया गया हो. इससे, पहले से मौजूद किसी भी एट्रिब्यूट की वैल्यू को बदल दिया जाता है, जिसे फ़ील्ड मास्क में साफ़ तौर पर शामिल नहीं किया गया है. अगर किसी नए कस्टम एट्रिब्यूट का एलान करने के लिए, इस तरीके का इस्तेमाल किया जाता है, तो आपको वाहन के लिए सेट किए गए हर कस्टम एट्रिब्यूट के बारे में फिर से एलान करना होगा बनाए रखें. अगर फ़ील्ड मास्क में attributes को बाहर रखा जाता है, तो तो यह विधि पहले से तय की गई कस्टम विशेषताओं को छोड़ देती है ट्रैक करने में मदद मिलती है. अगर फ़ील्ड मास्क में attributes का इस्तेमाल किया जाता है, तो लेकिन वैल्यू सेट किए बिना, यह सभी कस्टम एट्रिब्यूट की वैल्यू देता है. यह तरीका खास सूची के एट्रिब्यूट को स्वीकार करता है, ताकि अपडेट. अनुरोध अपडेट किया जाता है या सिर्फ़ उन एट्रिब्यूट को जोड़ा जाता है जिनके बारे में बताया गया है का इस्तेमाल नहीं किया जा सकता. पहले से मौजूद ऐसे एट्रिब्यूट जिनके लिए कोई वैल्यू नहीं दी गई है उनमें कोई बदलाव नहीं होगा.

वाहन के फ़ील्ड अपडेट करने का उदाहरण

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

अनुरोधों को अस्वीकार कर देता है.

last_location के अलावा अन्य फ़ील्ड में बदलाव करने के लिए, Fleet Engine ऑन-डिमांड एडमिन के खास अधिकारों की ज़रूरत होती है.

उदाहरण: यात्रा का नया टाइप और कस्टम एट्रिब्यूट चालू करना

इस उदाहरण में, वाहन के लिए back_to_back यात्राएं चालू की गई हैं. साथ ही, यह नई विशेषता: class. जैसा कि वाहन के एट्रिब्यूट अपडेट करें में पहले बताया गया है, इस तरीके का इस्तेमाल करके attributes फ़ील्ड को अपडेट करने के लिए, आपको सभी कस्टम एट्रिब्यूट, जिन्हें आपको बनाए रखना है. इसलिए, उदाहरण में cash_only को दिखाया गया है अपडेट की कार्रवाई के दौरान ओवरराइट होने से बचाने के लिए लिखी गई वैल्यू जो attributes फ़ील्ड के बारे में बताता है.

सिर्फ़ एक कीवर्ड-वैल्यू एट्रिब्यूट पेयर की वैल्यू अपडेट करने के लिए, इसके बजाय UpdateVehicleAttributes तरीके का इस्तेमाल करें. साथ ही, UpdateVehicle अनुरोध के लिए फ़ील्ड मास्क में attribute फ़ील्ड शामिल न करें.

gRPC और REST के लिए providers.vehicles.update रेफ़रंस देखें.

gRPC

static final String PROJECT_ID = "project-id";
static final String VEHICLE_ID = "vid-8241890";

VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);

String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;
Vehicle updatedVehicle = Vehicle.newBuilder()
    .setVehicleState(VehicleState.ONLINE)
    .addAllAttributes(ImmutableList.of(
        VehicleAttribute.newBuilder().setKey("class").setValue("ECONOMY").build(),
        VehicleAttribute.newBuilder().setKey("cash_only").setValue("false").build()))
    .setBackToBackEnabled(true)
    .build();

UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()
    .setName(vehicleName)
    .setVehicle(updatedVehicle)
    .setUpdateMask(FieldMask.newBuilder()
        .addPaths("vehicle_state")
        .addPaths("attributes")
        .addPaths("back_to_back_enabled"))
    .build();

try {
  Vehicle updatedVehicle =
      vehicleService.updateVehicle(updateVehicleRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case NOT_FOUND:
      // Most implementations will call CreateVehicle in this case
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}
// If no Exception, Vehicle updated successfully.

आराम

curl -X PUT \
  "https://fleetengine.googleapis.com/v1/providers/project-id/vehicles/vid-8241890?updateMask=vehicle_state,attributes,back_to_back_enabled" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  --data-binary @- << EOM
{
    "vehicleState": "ONLINE",
    "attributes": [
      {"key": "class", "value": "LUXURY"},
      {"key": "cash_only", "value": "false"}
    ],
    "backToBackEnabled": true
}
EOM

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