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