इस दस्तावेज़ में, वाहन के उन अहम फ़ील्ड के बारे में बताया गया है जिन्हें वाहन बनाते और मैनेज करते समय अपडेट किया जा सकता है.
|
वाहन के फ़ील्ड की पूरी सूची देखने के लिए, यहां देखें:
|
वाहन के स्टेटस का फ़ील्ड
आपका सिस्टम, वाहन की स्थिति को OFFLINE
या ONLINE
पर सेट कर सकता है. उदाहरण के लिए, हर दिन सुबह 9 बजे और OFFLINE
बजे शाम 5 बजे के लिए, वाहन की स्थिति को ONLINE
पर सेट किया जा सकता है.
ऑफ़लाइन मोड | ऑनलाइन मोड |
---|---|
OFFLINE का इस्तेमाल करके बताएं कि कोई वाहन नई यात्राएं स्वीकार नहीं कर रहा है. ध्यान दें कि इस स्थिति में होने पर भी वाहन, असाइन की गई यात्राएं पूरी कर सकता है. |
|
वाहन के एट्रिब्यूट वाला फ़ील्ड
वाहन 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.
REST
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