इस सेक्शन में आगे बढ़ने से पहले, अगर आपने अब तक ऐसा नहीं किया है, तो पुष्टि करें कि आपने फ़ीड बनाने के लिए, माइक्रोमोबिलिटी की सुविधा देने वाली कंपनियों के साथ काम करने वाले सिस्टम चुने हों.
यहां दिए गए सेक्शन में, हर हेडर का फ़ॉर्मैट यह है:
Required|Optional|Conditionally required: Feed name (System supported)
. इन सिस्टम पर काम करता है:
- डॉक किया गया सिस्टम
- डॉकलेस सिस्टम
- डॉक किए गए और बिना डॉक किए गए सिस्टम
Google के साथ इंटिग्रेट करने के लिए, सिर्फ़ वे फ़ाइलें उपलब्ध कराएं जिनकी ज़रूरत आपके फ़ीड के सिस्टम के लिए है. साथ ही, ज़रूरी फ़ील्ड के बारे में बताएं. ये फ़ील्ड, फ़ीड के अलग-अलग सेक्शन में शामिल होने चाहिए. शर्त के साथ ज़रूरी फ़ील्ड के बारे में दिशा-निर्देश पाने के लिए, फ़ील्ड का ब्यौरा देखें. आपके पास ऐसे वैकल्पिक फ़ील्ड भी तय करने का विकल्प होता है जिनसे ज़्यादा जानकारी मिलती है और लोगों को बेहतर अनुभव मिलता है.
माइक्रोमोबिलिटी फ़ीड के लिए ज़रूरी हेडर
माइक्रोमोबिलिटी फ़ीड ऐसे फ़ीड होते हैं जिनमें डॉक्ड या डॉकलेस माइक्रोमोबिलिटी स्ट्रक्चर्ड डेटा होता है. इस लेख में इसके बारे में बताया गया है.
सभी फ़ीड में, JSON ऑब्जेक्ट के टॉप लेवल पर, यहां दी गई टेबल में शामिल फ़ील्ड हमेशा मौजूद होने चाहिए. इन्हें GBFS का सामान्य हेडर कहा जाता है.
फ़ील्ड का नाम | टाइप | आवश्यकता | ब्यौरा |
---|---|---|---|
last_updated |
टाइमस्टैम्प | ज़रूरी है | POSIX टाइमस्टैंप, जो 1 जनवरी, 1970 को 00:00:00 यूटीसी से सेकंड की संख्या बताता है.
इसे उस समय पर सेट किया जाता है जब फ़ीड में मौजूद डेटा को आखिरी बार अपडेट किया गया था. |
ttl |
सकारात्मक पूर्णांक | ज़रूरी है | यह एक नॉन-नेगेटिव पूर्णांक होता है. यह फ़ीड को अपडेट करने में बचे हुए समय को सेकंड में दिखाता है.
अगर डेटा को एक ही दर पर अपडेट करना है, तो इस वैल्यू को |
data |
JSON | ज़रूरी है | JSON, जिसमें हर फ़ीड के लिए डेटा फ़ील्ड शामिल होते हैं. |
उदाहरण के लिए, एक एग्रीगेट किया गया free_bike_status.json
फ़ीड, जिसमें सामान्य GBFS हेडर के बारे में बताया गया है, इस तरह का हो सकता है:
{
"ttl": 30,
"last_updated": 1576123774,
"data": {
"bikes": [ ... ] // GBFS free bike status objects.
}
}
ज़रूरी है: system_information.json (डॉक और डॉकलेस सिस्टम)
ज़रूरत के हिसाब से, GBFS स्पेसिफ़िकेशन देखें.
इस फ़ीड में सिस्टम ऑपरेटर के बारे में जानकारी दी जाती है.
फ़ील्ड का नाम | टाइप | आवश्यकता | ब्यौरा |
---|---|---|---|
system_id |
आईडी | ज़रूरी है | वाहन शेयर करने की सुविधा देने वाले सिस्टम के लिए, दुनिया भर में यूनीक आइडेंटिफ़ायर. यह वैल्यू, सिस्टम के चालू रहने तक एक जैसी रहती है. हर सिस्टम या भौगोलिक क्षेत्र के लिए, system_id अलग होना चाहिए. सिस्टम आईडी को किसी खास सिस्टम से जुड़ा हुआ माना जाना चाहिए, न कि रैंडम स्ट्रिंग के तौर पर. उदाहरण के लिए, bcycle_austin या biketown_pdx. |
name |
स्ट्रिंग | ज़रूरी है | सिस्टम का नाम, जो खरीदारों को दिखता है. |
rental_apps |
ऑब्जेक्ट | ज़रूरी है | यह एक JSON ऑब्जेक्ट है. इसमें Android और iOS के लिए, किराये पर उपलब्ध कराने वाले ऐप्लिकेशन की जानकारी होती है. यह जानकारी, उनके फ़ील्ड में मौजूद होती है. |
rental_apps.android |
ऑब्जेक्ट | कुछ शर्तों के मुताबिक ज़रूरी है |
इसमें Android प्लैटफ़ॉर्म के लिए, किराये पर उपलब्ध ऐप्लिकेशन को डाउनलोड करने और ऐप्लिकेशन ढूंढने से जुड़ी जानकारी होती है. यह जानकारी store_uri और discovery_uri फ़ील्ड में मौजूद होती है. अगर सिस्टम प्रोवाइडर के पास Android पर चलने वाला रेंटल ऐप्लिकेशन है, तो यह फ़ील्ड ज़रूरी है.
|
rental_apps.android.store_uri |
यूआरआई | ज़रूरी है | वह यूआरआई जहां से किराये पर लिया गया Android ऐप्लिकेशन डाउनलोड किया जा सकता है. आम तौर पर, यह Google Play जैसे किसी ऐप्लिकेशन स्टोर का यूआरआई होता है. अगर यूआरआई, Google Play जैसे किसी ऐप्लिकेशन स्टोर पर ले जाता है, तो हमारा सुझाव है कि यूआरआई, Android के सबसे सही तरीकों का पालन करे. इससे, ऐप्लिकेशन देखने वाला व्यक्ति सीधे तौर पर यूआरआई को वेबसाइट के बजाय, नेटिव ऐप्लिकेशन स्टोर ऐप्लिकेशन पर खोल सकता है. |
rental_apps.android.discovery_uri |
यूआरआई | ज़रूरी है | your_custom_scheme://your/path/here फ़ॉर्मैट वाला यूआरआई.
PackageManager.queryIntentActivities() इस यूआरआई का इस्तेमाल करके यह पता लगाया जा सकता है कि डिवाइस पर किराये पर लिया गया Android ऐप्लिकेशन इंस्टॉल है या नहीं.
|
rental_apps.ios |
ऑब्जेक्ट | कुछ शर्तों के मुताबिक ज़रूरी है | इसमें iOS प्लैटफ़ॉर्म के लिए, किराये पर उपलब्ध ऐप्लिकेशन को डाउनलोड करने और ऐप्लिकेशन ढूंढने से जुड़ी जानकारी होती है. यह जानकारी store_uri और discovery_uri फ़ील्ड में मौजूद होती है. अगर सिस्टम उपलब्ध कराने वाली कंपनी के पास iOS के लिए किराये पर वाहन देने वाला ऐप्लिकेशन है, तो यह फ़ील्ड ज़रूरी है.
|
rental_apps.ios.store_uri |
यूआरआई | ज़रूरी है | वह यूआरआई जहां से किराये पर लिया गया iOS ऐप्लिकेशन डाउनलोड किया जा सकता है. आम तौर पर, यह Apple App Store जैसे किसी ऐप्लिकेशन स्टोर का यूआरआई होता है. अगर यूआरआई, Apple App Store जैसे किसी ऐप्लिकेशन स्टोर पर ले जाता है, तो हमारा सुझाव है कि यूआरआई, iOS के सबसे सही तरीकों का पालन करे. इससे, वीडियो देखने वाला ऐप्लिकेशन, वेबसाइट के बजाय सीधे तौर पर नेटिव ऐप्लिकेशन स्टोर ऐप्लिकेशन पर यूआरआई खोल सकता है. |
rental_apps.ios.discovery_uri |
यूआरआई | ज़रूरी है | your_custom_scheme:// फ़ॉर्मैट वाला यूआरआई. UIApplication canOpenURL: इस यूआरआई का इस्तेमाल यह पता लगाने के लिए कर सकता है कि डिवाइस पर किराये पर उपलब्ध iOS ऐप्लिकेशन इंस्टॉल है या नहीं.
|
ज़रूरी है: free_bike_status.json (डॉकलेस सिस्टम)
ज़रूरत के हिसाब से, GBFS स्पेसिफ़िकेशन देखें.
इस फ़ीड में, उपलब्ध फ़्री-स्टैंडिंग वाहनों की जगह की जानकारी और एट्रिब्यूट तय किए जाते हैं. निजता की वजहों से, किराये पर दिए गए वाहन इस फ़ीड में नहीं दिखने चाहिए.
फ़ील्ड का नाम | टाइप | आवश्यकता | ब्यौरा |
---|---|---|---|
bikes |
Array | ज़रूरी है | फ़िलहाल उपलब्ध, रोकी गई बाइकों की कैटगरी. इसमें हर बाइक एक ऑब्जेक्ट होती है. |
bikes[].bike_id |
आईडी | ज़रूरी है | बाइक का आइडेंटिफ़ायर.
निजता की सुरक्षा के लिए, हर यात्रा के बाद आईडी को रैंडम स्ट्रिंग में बदला जा सकता है. |
bikes[].lat |
अक्षांश | ज़रूरी है | बाइक का WGS 84 अक्षांश, दशमलव डिग्री फ़ॉर्मैट में. |
bikes[].lon |
देशांतर | ज़रूरी है | दशमलव डिग्री फ़ॉर्मैट में बाइक का WGS 84 देशांतर. |
bikes[].is_reserved |
बूलियन | ज़रूरी है | बाइक को फ़िलहाल रिज़र्व किया गया है या नहीं. इसके लिए, यह जानकारी दी गई है:
|
bikes[].is_disabled |
बूलियन | ज़रूरी है | बाइक फ़िलहाल बंद है या खराब है. इसके लिए, यह जानकारी दी जाती है:
|
bikes[].rental_uris |
ऑब्जेक्ट | ज़रूरी है | यह एक JSON ऑब्जेक्ट है. इसमें Android, iOS, और वेब के लिए किराये पर उपलब्ध कॉन्टेंट के यूआरआई, उनके फ़ील्ड में शामिल होते हैं. |
bikes[].rental_uris.android |
यूआरआई | कुछ शर्तों के मुताबिक ज़रूरी है | यह एक यूआरआई है, जिसे Android ऐप्लिकेशन को पास किया जा सकता है. इसमें android.intent.action.VIEW Android इंटेंट होता है, ताकि
Android डीप लिंक काम कर सकें. rental_uris के तौर पर
Android ऐप्लिकेशन लिंक उपलब्ध कराना ज़रूरी है. इससे, अगर उपयोगकर्ता ने कॉन्टेंट उपलब्ध कराने वाला ऐप्लिकेशन इंस्टॉल नहीं किया है, तो कॉन्टेंट देखने वाले ऐप्लिकेशन को उपयोगकर्ता को ऐप्लिकेशन स्टोर पर रीडायरेक्ट करने की सुविधा को मैन्युअल तरीके से मैनेज करने की ज़रूरत नहीं पड़ेगी.
यह यूआरआई, किसी एक बाइक का डीप लिंक होना चाहिए. यह ऐसा सामान्य रेंटल पेज नहीं होना चाहिए जिसमें एक से ज़्यादा बाइक की जानकारी शामिल हो. डीप लिंक पर क्लिक करने के बाद, उपयोगकर्ता को सीधे बाइक पर ले जाना होगा. इसके लिए, किसी भी तरह के प्रॉम्प्ट, इंटरस्टीशियल पेज या लॉगिन का इस्तेमाल नहीं किया जा सकता. पक्का करें कि लोगों को बाइक दिखे, भले ही उन्होंने कभी ऐप्लिकेशन न खोला हो. साइकिल के लिए यूआरआई में अगर पार्टनर के पास Android पर किराये पर कार देने वाला ऐप्लिकेशन है, तो इस फ़ील्ड की जानकारी देना ज़रूरी है. उपलब्ध कराना ज़रूरी है.Android ऐप्लिकेशन के लिंक का उदाहरण:
|
bikes[].rental_uris.ios |
यूआरआई | कुछ शर्तों के मुताबिक ज़रूरी है | ऐसा यूआरआई जिसका इस्तेमाल iOS पर, बाइक रेंटल ऐप्लिकेशन को लॉन्च करने के लिए किया जा सकता है.
इस बारे में ज़्यादा जानने के लिए, Apple का यह लेख पढ़ें:
iOS कस्टम यूआरएल स्कीम.
rental_uris के तौर पर
iOS यूनिवर्सल लिंक उपलब्ध कराए जाने चाहिए, ताकि अगर उपयोगकर्ता के पास सेवा देने वाले का ऐप्लिकेशन इंस्टॉल न हो, तो उसे ऐप्लिकेशन स्टोर पर रीडायरेक्ट करने के लिए, ऐप्लिकेशन को मैन्युअल तरीके से मैनेज न करना पड़े.
यह यूआरआई, किसी एक बाइक का डीप लिंक होना चाहिए. यह ऐसा सामान्य रेंटल पेज नहीं होना चाहिए जिसमें एक से ज़्यादा बाइक की जानकारी शामिल हो. डीप लिंक पर क्लिक करने के बाद, उपयोगकर्ता को सीधे बाइक पर ले जाना होगा. इसके लिए, किसी भी तरह के प्रॉम्प्ट, इंटरस्टीशियल पेज या लॉगिन का इस्तेमाल नहीं किया जा सकता. पक्का करें कि लोगों को बाइक दिखे, भले ही उन्होंने कभी ऐप्लिकेशन न खोला हो. बाइक के लिए यूआरआई में bike_id शामिल करना ज़रूरी नहीं है. हालांकि, पार्टनर के पास उस बाइक की पहचान करने का कोई दूसरा तरीका होना चाहिए. उदाहरण के लिए, किराये पर बाइक देने वाला ऐप्लिकेशन, यूआरआई में मौजूद अन्य आइडेंटिफ़ायर का इस्तेमाल करके बाइक की खास तौर पर पहचान कर सकता है. अगर पार्टनर के पास iOS पर चलने वाला रेंटल ऐप्लिकेशन है, तो यह फ़ील्ड भरना ज़रूरी है. देना ज़रूरी है.iOS यूनिवर्सल लिंक का उदाहरण:
|
bikes[].rental_uris.web |
URL | वैकल्पिक | ऐसा यूआरएल जिसका इस्तेमाल वेब ब्राउज़र, इस वाहन को किराए पर लेने के बारे में ज़्यादा जानकारी दिखाने के लिए कर सकता है. यह यूआरएल, किसी एक बाइक का डीप लिंक होना चाहिए. यह ऐसा सामान्य रेंटल पेज नहीं होना चाहिए जिसमें एक से ज़्यादा बाइक की जानकारी शामिल हो. डीप लिंक पर क्लिक करने के बाद, उपयोगकर्ता को सीधे बाइक पर ले जाना होगा. इसके लिए, किसी भी तरह के प्रॉम्प्ट, इंटरस्टीशियल पेज या लॉगिन का इस्तेमाल नहीं किया जा सकता. पक्का करें कि लोगों को बाइक दिखे, भले ही उन्होंने कभी ऐप्लिकेशन न खोला हो. बाइक के यूआरएल में अगर इस फ़ील्ड को सेट नहीं किया जाता है, तो इसका मतलब है कि वेब ब्राउज़र के लिए डीप लिंक काम नहीं करते. उदाहरण वैल्यू:
|
bikes[].vehicle_type_id |
आईडी | ज़रूरी है | vehicle_types.json सेक्शन में बताए गए तरीके के मुताबिक, वाहन का vehicle_type_id .
|
bikes[].pricing_plan_id |
आईडी | ज़रूरी है | किराये के प्लान का आइडेंटिफ़ायर. यह प्लान तब लागू होता है, जब इस तरह के वाहन को system_pricing_plans.json सेक्शन में बताए गए तरीके से किराये पर लिया जाता है.
|
bikes[].current_range_meters |
सकारात्मक फ़्लोट | कुछ शर्तों के मुताबिक ज़रूरी है | अगर वाहन से जुड़ी vehicle_type की परिभाषा में मोटर शामिल है, तो इस फ़ील्ड की ज़रूरत होती है.
इस एट्रिब्यूट की वैल्यू, मीटर में वह सबसे ज़्यादा दूरी सेट करें जो वाहन, रीचार्ज या रिफ़्यूल किए बिना तय कर सकता है. यह दूरी, वाहन के मौजूदा चार्ज या ईंधन के लेवल के हिसाब से तय की जाती है. |
bikes[].last_reported |
टाइमस्टैम्प | वैकल्पिक | इस फ़ील्ड की वैल्यू, उस समय के हिसाब से सेट की जाती है जब वाहन ने ऑपरेटर के बैकएंड को अपनी स्थिति की जानकारी दी थी. |
यहां free_bike_status.json
का उदाहरण दिया गया है:
"bikes": [{
"bike_id": "xyz123",
"lat": 12.34,
"lon": 56.78,
"is_reserved": true,
"is_disabled": false,
"rental_uris":{
"android": "https://www.example.com/app?sid=1234567890&platform=android",
"ios": "https://www.example.com/app?sid=1234567890&platform=ios",
"web": "https://www.example.com/app?sid=1234567890"
},
"vehicle_type_id": "scooter_electric",
"pricing_plan_id": "sydneyPlan1",
"current_range_meters": 4500,
"last_reported": 1434054678
},
{
"bike_id": "abc123",
"lat": 1.34,
"lon": 146.78,
"is_reserved": false,
"is_disabled": true,
"rental_uris":{
"android": "https://www.example.com/app?sid=1234567890&platform=android",
"ios": "https://www.example.com/app?sid=1234567890&platform=ios",
"web": "https://www.example.com/app?sid=1234567890"
},
"vehicle_type_id": "bike_manual",
"pricing_plan_id": "sydneyPlan1",
"last_reported": 1434054241
}
]
ज़रूरी है: vehicle_types.json (डॉक और डॉकलेस सिस्टम)
ज़रूरत के हिसाब से, GBFS स्पेसिफ़िकेशन देखें.
इस फ़ीड में, अलग-अलग तरह के वाहनों की जानकारी दी जाती है. इस बारे में free_bike_status.json
सेक्शन में बताया गया है.
फ़ील्ड का नाम | टाइप | आवश्यकता | ब्यौरा |
---|---|---|---|
vehicle_types |
Array | ज़रूरी है | ऑब्जेक्ट की एक कैटगरी. इसमें हर ऑब्जेक्ट, सेवा देने वाली कंपनी के कैटलॉग में मौजूद अलग-अलग तरह के वाहनों के बारे में बताता है. किसी वाहन के टाइप के लिए, सिर्फ़ एक ऑब्जेक्ट हो सकता है. |
vehicle_types[].vehicle_type_id |
आईडी | ज़रूरी है | किसी वाहन के टाइप के लिए यूनीक आइडेंटिफ़ायर. |
vehicle_types[].form_factor |
Enum | ज़रूरी है | यह एक enum है, जो वाहन के सामान्य फ़ॉर्म फ़ैक्टर को दिखाता है. फ़िलहाल, मान्य वैल्यू की इस सूची में से कोई वैल्यू चुनें:
|
vehicle_types[].propulsion_type |
Enum | ज़रूरी है | यह एक enum है, जो वाहन के प्राइमरी प्रोपल्शन टाइप को दिखाता है. फ़िलहाल, मान्य वैल्यू की इस सूची में से:
|
vehicle_types[].max_range_meters |
सकारात्मक फ़्लोट | कुछ शर्तों के मुताबिक ज़रूरी है | अगर propulsion_type को human पर सेट नहीं किया गया है, तो इसका मतलब है कि वाहन में मोटर है. इसलिए, इस फ़ील्ड की वैल्यू देना ज़रूरी है.
यह वैल्यू, मीटर में उस दूरी पर सेट की जाती है जो वाहन, पूरी तरह से चार्ज होने या पूरी तरह से ईंधन भरने के बाद, बिना रिचार्ज किए या बिना ईंधन भरे तय कर सकता है. |
यहां vehicle_types.json
का उदाहरण दिया गया है:
"vehicle_types": [
{
"vehicle_type_id": "bike_manual",
"form_factor": "bicycle",
"propulsion_type": "human"
},
{
"vehicle_type_id": "scooter_electric",
"form_factor": "scooter",
"propulsion_type": "electric",
"max_range_meters": 10000
}
]
ज़रूरी है: system_pricing_plans.json (बिना डॉक वाला सिस्टम)
ज़रूरत के हिसाब से, GBFS स्पेसिफ़िकेशन देखें.
इस फ़ीड में, अलग से खड़े किए गए वाहनों के लिए किराया प्लान तय किए जाते हैं. हम चाहते हैं कि सेवा देने वाली कंपनियां, अलग से खड़े वाहनों के लिए कीमत की जानकारी दिखाएं.
फ़ील्ड का नाम | टाइप | आवश्यकता | ब्यौरा |
---|---|---|---|
plans |
Array | ज़रूरी है | ऑब्जेक्ट का कलेक्शन, जिसमें हर ऑब्जेक्ट किसी कीमत वाले प्लान के बारे में बताता है. |
plans[].plan_id |
आईडी | ज़रूरी है | यह एक स्ट्रिंग होती है. यह कीमत वाले प्लान के लिए यूनीक आइडेंटिफ़ायर को दिखाती है. यह प्लान, सेवा देने वाली कंपनी ऑफ़र करती है. |
plans[].url |
URL | वैकल्पिक | वह यूआरएल जो असली उपयोगकर्ताओं को कीमत की योजना के बारे में ज़्यादा जानकारी देता है. |
plans[].currency |
स्ट्रिंग | ज़रूरी है | कीमत प्लान के लिए, ISO 4217 स्टैंडर्ड. |
plans[].price |
सकारात्मक फ़्लोट | ज़रूरी है |
कीमत के प्लान को, बिना रेटिंग वाला या रेटिंग वाला प्लान के तौर पर तय किया जाना चाहिए:
|
plans[].per_km_pricing |
Array | कुछ शर्तों के मुताबिक ज़रूरी है |
अगर किराया, तय की गई दूरी के हिसाब से तय होता है और उसे किलोमीटर में दिखाया जाता है, तो इस फ़ील्ड की ज़रूरत होती है. ऑब्जेक्ट का एक कलेक्शन, जिसमें हर ऑब्जेक्ट, दूरी के हिसाब से बांटे गए सेगमेंट के बारे में बताता है. हर सेगमेंट की दिए गए प्लान की कुल कीमत तय करने के लिए, दिए गए प्लान की अगर यह फ़ील्ड सेट नहीं किया जाता है, तो दूरी के हिसाब से किराये में कोई बदलाव नहीं होता. इसलिए, कुल किराये में कोई भी बदलाव शामिल नहीं किया जाता. |
plans[].per_km_pricing[].start |
सकारात्मक पूर्णांक | ज़रूरी है |
किलोमीटर की वह संख्या जिसके बाद से सेगमेंट के लिए शुल्क लगना शुरू होता है.
इस फ़ील्ड को शामिल वैल्यू पर सेट किया जाता है. यह वैल्यू, सेगमेंट की रेंज शुरू करती है. इसलिए, तय किए गए किलोमीटर पूरे होने के बाद, rate का शुल्क एक बार लिया जाता है.
|
plans[].per_km_pricing[].rate |
फ़्लोट | ज़रूरी है | हर interval के लिए लिया जाने वाला शुल्क, जो सेगमेंट के start से शुरू होता है. अगर इस फ़ील्ड को नेगेटिव नंबर पर सेट किया जाता है, तो यात्री को छूट मिलती है.
|
plans[].per_km_pricing[].interval |
सकारात्मक पूर्णांक | ज़रूरी है |
यह किलोमीटर में वह इंटरवल होता है जिस पर सेगमेंट का
अगर सेगमेंट का अगर इस फ़ील्ड को |
plans[].per_km_pricing[].end |
सकारात्मक पूर्णांक | वैकल्पिक |
किलोमीटर की वह संख्या जिसके बाद सेगमेंट के लिए अगर यह फ़ील्ड सेट नहीं है या खाली है, तो यात्रा खत्म होने तक सेगमेंट के लिए |
plans[].per_min_pricing |
Array | कुछ शर्तों के मुताबिक ज़रूरी है |
अगर कीमत, बीता हुआ समय (मिनटों में दिखाया गया) के हिसाब से तय होती है, तो इस फ़ील्ड को भरना ज़रूरी है. ऑब्जेक्ट का कलेक्शन, जिसमें हर ऑब्जेक्ट, समय के हिसाब से बांटे गए सेगमेंट के बारे में बताता है. हर सेगमेंट की दिए गए प्लान की कुल कीमत तय करने के लिए, दिए गए प्लान की अगर यह फ़ील्ड सेट नहीं किया जाता है, तो समय के हिसाब से किराये में बदलाव नहीं होता है. इसलिए, कुल किराये में कोई भी बदलाव शामिल नहीं किया जाता है. |
plans[].per_min_pricing[].start |
फ़्लोट | ज़रूरी है |
यह वह समय होता है जिसके बाद सेगमेंट के लिए शुल्क लगना शुरू होता है.
इस फ़ील्ड को शामिल वैल्यू पर सेट किया जाता है. यह वैल्यू, सेगमेंट की रेंज शुरू करती है. इसलिए, तय किए गए मिनट पूरे होने के बाद, rate से एक बार शुल्क लिया जाएगा.
|
plans[].per_min_pricing[].rate |
फ़्लोट | ज़रूरी है | हर interval के लिए लिया जाने वाला शुल्क. यह दर, सेगमेंट के start से शुरू होती है. अगर इस फ़ील्ड को नेगेटिव नंबर पर सेट किया जाता है, तो यात्री को छूट मिलती है.
|
plans[].per_min_pricing[].interval |
सकारात्मक पूर्णांक | ज़रूरी है |
यह वह समयावधि है जिसके बाद सेगमेंट का
अगर सेगमेंट का अगर इस फ़ील्ड को |
plans[].per_min_pricing[].end |
सकारात्मक पूर्णांक | वैकल्पिक |
यह वह समय है जब सेगमेंट के लिए अगर यह फ़ील्ड सेट नहीं है या खाली है, तो यात्रा खत्म होने तक सेगमेंट के लिए |
system_pricing_plans.json के उदाहरण
इस सेक्शन में, जानकारी देने वाले system_pricing_plans.json
कोड सैंपल दिए गए हैं. हर उदाहरण के लिए, काम की जानकारी और नतीजे भी दिए गए हैं.
system_pricing_plans.json के लिए पहला उदाहरण
कीमत के प्लान के इस सैंपल कोड में, यात्रा की अवधि के आधार पर शुल्क दिखाया गया है. यह शुल्क इन समयावधियों के लिए है:
- [0,1): 2 डॉलर
- अगर यात्रा एक मिनट से कम है, तो उपयोगकर्ता को 2 डॉलर चुकाने होंगे.
- उदाहरण: 59 सेकंड की यात्रा
- [1,2): 3 डॉलर
- अगर यात्रा एक मिनट या उससे ज़्यादा, लेकिन दो मिनट से कम है, तो उपयोगकर्ता को 2 डॉलर + 1 डॉलर = 3 डॉलर चुकाने होंगे.
- उदाहरण: एक मिनट की यात्रा; एक मिनट 45 सेकंड की यात्रा
- x मिनट, जहां x की वैल्यू 2 से ज़्यादा या इसके बराबर है:
300 रुपये + ((200 रुपये + 100 रुपये) * (x - 2 + 1))
भारतीय रुपये
- अगर यात्रा दो मिनट या इससे ज़्यादा की है, तो उपयोगकर्ता को दो मिनट से कम की यात्रा के लिए 3 डॉलर चुकाने होंगे. साथ ही, दो मिनट के बाद की हर मिनट की यात्रा के लिए, उसे (
per_min_pricing
सूची की पहली एंट्री से जारी है) 1 डॉलर + (per_min_pricing
सूची की दूसरी एंट्री) 2 डॉलर चुकाने होंगे. - उदाहरण:
- दो मिनट की यात्रा का किराया 3 डॉलर + (2 डॉलर + 1 डॉलर) = 6 डॉलर
- ढाई मिनट की यात्रा का किराया 3 डॉलर + (2 डॉलर + 1 डॉलर) = 6 डॉलर
- तीन मिनट की यात्रा का किराया 300 रुपये + ((200 रुपये + 100 रुपये) * 2) = 900 रुपये
- 10 मिनट की यात्रा का किराया 3 डॉलर + (($2 + $1) * 9) = 30 डॉलर
- अगर यात्रा दो मिनट या इससे ज़्यादा की है, तो उपयोगकर्ता को दो मिनट से कम की यात्रा के लिए 3 डॉलर चुकाने होंगे. साथ ही, दो मिनट के बाद की हर मिनट की यात्रा के लिए, उसे (
{
"plans": {
"plan_id": "plan1",
"currency": "USD",
"price": 2,
"per_min_pricing": [
{
"interval": 1,
"rate": 1,
"start": 1
},
{
"interval": 1,
"rate": 2,
"start": 2
}
],
}
}
system_pricing_plans.json के लिए दूसरा उदाहरण
इस उदाहरण में, हम ऐसे प्राइसिंग प्लान के लिए कोड का सैंपल दिखाते हैं जिसमें मिनट और किलोमीटर, दोनों के हिसाब से शुल्क लिया जाता है:
- खास तौर पर, आखिरी उपयोगकर्ता से हर किलोमीटर के लिए 0.25 कैनेडियन डॉलर और हर मिनट के लिए 0.50 कैनेडियन डॉलर का शुल्क लिया जाता है.
- ये दोनों दरें एक साथ लागू होती हैं और एक-दूसरे पर निर्भर नहीं होती हैं.
- इसलिए, एक किलोमीटर की यात्रा के लिए 900 रुपये का शुल्क लगता है. इस शुल्क का ब्यौरा यहां दिया गया है:
- 300 रुपये, मूल कीमत
- 0.25 डॉलर * 2. यह शुल्क, यात्रा की शुरुआत में एक बार और 1 कि॰मी॰ की दूरी तय करने के बाद एक बार लिया जाता है.
- 0.5 डॉलर * 11. यह शुल्क हर मिनट की शुरुआत में एक बार लिया जाता है. शुल्क 0 सेकंड से शुरू होता है. आखिरी इंटरवल के लिए 10 मिनट का शुल्क लिया जाता है.
{
"plans": {
"plan_id": "plan2",
"currency": "CAD",
"price": 3,
"per_km_pricing": [{
"start": 0,
"rate": 0.25,
"interval": 1
}],
"per_min_pricing": [{
"start": 0,
"rate": 0.50,
"interval": 1
}]
}
}
कुछ शर्तों के मुताबिक ज़रूरी है: geofencing_zones.json (डॉक और बिना डॉक वाला सिस्टम)
ज़रूरत के हिसाब से, GBFS स्पेसिफ़िकेशन देखें.
इस फ़ीड से, फ़्री-स्टैंडिंग वाहनों के लिए जियोफ़ेंसिंग डेटा तय किया जाता है. जियोफ़ेंसिंग के डेटा में, भौगोलिक सीमाएं शामिल होती हैं. इनसे यह पता चलता है कि वाहनों को कहां से यात्रा शुरू करने और कहां खत्म करने की अनुमति है. साथ ही, यह भी पता चलता है कि वाहन किस रफ़्तार से चल सकते हैं. यह रफ़्तार, वाहन की ज़्यादा से ज़्यादा रफ़्तार या उस सड़क की रफ़्तार सीमा होती है जिस पर वाहन चल रहा है. इनमें से जो भी कम हो उसे रफ़्तार सीमा माना जाता है. ड्राइवरों को स्थानीय कानूनों और अध्यादेशों का पालन करना होगा.
हम इस डेटा का इस्तेमाल इसलिए करते हैं, ताकि जब कोई व्यक्ति किसी रूट को खोजे, तो अगर यात्रा का आखिरी हिस्सा किसी खास जियोफ़ेंस से बाहर हो, तो माइक्रोट्रांसपोर्टेशन के नतीजे को फ़िल्टर कर दिया जाए. अगर जियोफ़ेंस की जानकारी नहीं दी जाती है, तो Google यह मानता है कि सेवा के लिए कोई सीमा तय नहीं की गई है.
फ़ील्ड का नाम | टाइप | आवश्यकता | ब्यौरा |
---|---|---|---|
geofencing_zones |
ऑब्जेक्ट | ज़रूरी है |
IETF RFC 7946 के मुताबिक, FeatureCollection ऑब्जेक्ट एक ऐसा ऑब्जेक्ट होता है जिसमें features नाम का फ़ील्ड होता है. features की वैल्यू, एक JSON कलेक्शन है.
JSON ऐरे का हर एलिमेंट, एक Feature ऑब्जेक्ट होता है.
यहां हर जियोफ़ेंस किए गए ज़ोन, उससे जुड़े नियमों और एट्रिब्यूट, और |
geofencing_zones.type |
स्ट्रिंग | ज़रूरी है | FeatureCollection पर सेट किया गया है. इसके बारे में
IETF RFC 7946 में बताया गया है. |
geofencing_zones.features |
Array | ज़रूरी है | यह एक JSON कलेक्शन है. इसमें JSON कलेक्शन का हर एलिमेंट, Feature
ऑब्जेक्ट होता है. |
geofencing_zones.features[].type |
स्ट्रिंग | ज़रूरी है | Feature पर सेट किया गया है. इसके बारे में
IETF RFC 7946 में बताया गया है. |
geofencing_zones.features[].geometry |
GeoJSON मल्टीपॉलीगॉन | ज़रूरी है | यह एक GeoJSON Multipolygon है. इससे यह पता चलता है कि किन जगहों पर यात्राएं शुरू, खत्म या पूरी नहीं की जा सकतीं. साथ ही, इससे अन्य पाबंदियों के बारे में भी पता चलता है. पॉइंट को घड़ी की सुई की दिशा में व्यवस्थित करने से, पॉलीगॉन से घिरा हुआ क्षेत्र तय होता है. वहीं, घड़ी की सुई की उलटी दिशा में व्यवस्थित करने से, पॉलीगॉन के बाहर का क्षेत्र तय होता है. इस बारे में ज़्यादा जानकारी के लिए, राइट-हैंड रूल देखें. |
geofencing_zones.features[].properties |
ऑब्जेक्ट | ज़रूरी है | यह एक ऐसा ऑब्जेक्ट है जो यात्रा के भत्ते और पाबंदियों के बारे में बताता है. |
geofencing_zones.features[].properties.rules |
Array | वैकल्पिक | ऑब्जेक्ट का कलेक्शन. इसमें हर ऑब्जेक्ट, सिर्फ़ एक नियम के बारे में बताता है. अगर दो या उससे ज़्यादा नियम ओवरलैप होते हैं, टकराते हैं या किसी अन्य तरीके से एक-दूसरे से मेल नहीं खाते हैं, तो JSON फ़ाइल में सबसे पहले तय किए गए नियम को प्राथमिकता दी जाती है. |
geofencing_zones.features[].properties.rules[].vehicle_type_id |
Array | वैकल्पिक | वाहन के टाइप आईडी का कलेक्शन. इसमें हर एलिमेंट एक vehicle_type_id होता है. इस पर कोई भी पाबंदी लागू होनी चाहिए.
अगर कोई vehicle_type_id नहीं दिया गया है, तो पाबंदियां सभी तरह के वाहनों पर लागू होंगी. |
geofencing_zones.features[].properties.rules[].ride_allowed |
बूलियन | ज़रूरी है | यह जानकारी कि क्या "बिना डॉक की गई" साइकल राइड, ज़ोन में शुरू और खत्म की जा सकती है. जैसे:
|
यहां geofencing_zones.json
का उदाहरण दिया गया है:
"geofencing_zones":{
"type":"FeatureCollection",
"features":[{
"type":"Feature",
"properties":{
"rules":[{
"vehicle_type_id":"scooter",
"ride_allowed": false
}]
},
"geometry":{
"type":"MultiPolygon",
"coordinates":[[[
[-122.66780376434326, 45.49896266763551],
[-122.66810417175292, 45.49824825558575],
[-122.66830801963805, 45.49632305799116],
[-122.66780376434326, 45.49896266763551]
]]]
}
}]
}
ज़रूरी है: station_information.json (डॉक किया गया सिस्टम)
ज़रूरत के हिसाब से, GBFS स्पेसिफ़िकेशन देखें.
इस फ़ीड में, सार्वजनिक तौर पर बाइक शेयर करने की सुविधा देने वाले स्टेशनों के बारे में सामान्य जानकारी दी जाती है.
फ़ील्ड का नाम | टाइप | आवश्यकता | ब्यौरा |
---|---|---|---|
stations |
Array | ज़रूरी है | ऑब्जेक्ट का कलेक्शन, जिसमें हर ऑब्जेक्ट सिर्फ़ एक स्टेशन के बारे में बताता है. |
stations[].station_id |
स्ट्रिंग | ज़रूरी है | स्टेशन का आइडेंटिफ़ायर. |
stations[].name |
स्ट्रिंग | ज़रूरी है |
स्टेशन का सार्वजनिक नाम, उस शहर की स्थानीय भाषा में जिसमें स्टेशन मौजूद है. name वही होना चाहिए जो स्टेशन पर लगे साइनेज पर लिखा है. अगर साइनेज उपलब्ध नहीं है, तो इसमें स्टेशन की जगह की जानकारी होनी चाहिए. इसके लिए, क्रॉस स्ट्रीट या स्थानीय लैंडमार्क का इस्तेमाल किया जा सकता है.
"स्ट्रीट" के लिए "St." जैसे छोटे रूप का इस्तेमाल न करें. ऐसा तब तक न करें, जब तक कि इसका इस्तेमाल साइनेज में साफ़ तौर पर न किया गया हो. साथ ही, name में छोटे-बड़े अक्षरों का इस्तेमाल किया जाना चाहिए. इसमें जगहों के नाम को बड़े अक्षर से शुरू करने के लिए स्थानीय मानकों का पालन किया जाना चाहिए. साथ ही, इसे पूरी तरह से कैपिटल लेटर में नहीं लिखा जाना चाहिए.
|
stations[].lat |
अक्षांश | ज़रूरी है | स्टेशन का WGS 84 अक्षांश, दशमलव डिग्री फ़ॉर्मैट में. |
stations[].lon |
देशांतर | ज़रूरी है | स्टेशन का WGS 84 देशांतर, दशमलव डिग्री फ़ॉर्मैट में. |
stations[].capacity |
सकारात्मक पूर्णांक | वैकल्पिक | यह एक नॉन-नेगेटिव पूर्णांक होता है. इससे स्टेशन पर इंस्टॉल किए गए डॉकिंग पॉइंट की कुल संख्या के बारे में पता चलता है. इसमें उपलब्ध और अनुपलब्ध, दोनों तरह के डॉकिंग पॉइंट शामिल होते हैं. |
stations[].rental_uris |
ऑब्जेक्ट | ज़रूरी है |
यह एक JSON ऑब्जेक्ट है. इसमें Android, iOS, और वेब के लिए किराये पर उपलब्ध कॉन्टेंट के यूआरआई, उनके संबंधित फ़ील्ड में मौजूद होते हैं. इन यूआरआई को तय करने पर, ये उन डिफ़ॉल्ट डीप लिंक को बदल देते हैं जिन्हें सेवा देने वाली कंपनी को शामिल करते समय सेट किया गया था. |
stations[].rental_uris.android |
यूआरआई | कुछ शर्तों के मुताबिक ज़रूरी है |
यह एक यूआरआई है, जिसे Android ऐप्लिकेशन में यह यूआरआई, किसी स्टेशन के लिए खास तौर पर डीप लिंक होना चाहिए. यह ऐसा सामान्य रेंटल पेज नहीं होना चाहिए जिसमें एक से ज़्यादा स्टेशन की जानकारी शामिल हो. डीप लिंक, उपयोगकर्ता को सीधे स्टेशन पर ले जाना चाहिए. इसके लिए, किसी प्रॉम्प्ट, इंटरस्टीशियल पेज या लॉगिन की ज़रूरत नहीं होनी चाहिए. पक्का करें कि उपयोगकर्ताओं को स्टेशन दिखे, भले ही उन्होंने कभी ऐप्लिकेशन न खोला हो. स्टेशन के लिए यूआरआई में अगर पार्टनर के पास Android पर किराये पर कार देने वाला ऐप्लिकेशन है, तो इस फ़ील्ड की जानकारी देना ज़रूरी है. Android ऐप्लिकेशन के लिंक का उदाहरण:
|
stations[].rental_uris.ios |
यूआरआई | कुछ शर्तों के मुताबिक ज़रूरी है |
यह एक यूआरआई है. इसका इस्तेमाल iOS पर, स्टेशन के लिए किराये पर उपलब्ध ऐप्लिकेशन को लॉन्च करने के लिए किया जा सकता है.
इस बारे में ज़्यादा जानने के लिए, Apple का iOS कस्टम यूआरएल स्कीम के बारे में लेख पढ़ें.
उपलब्ध कराया गया यह यूआरआई, किसी स्टेशन के लिए खास तौर पर डीप लिंक होना चाहिए. यह ऐसा सामान्य रेंटल पेज नहीं होना चाहिए जिसमें एक से ज़्यादा स्टेशन की जानकारी शामिल हो. डीप लिंक, उपयोगकर्ता को सीधे स्टेशन पर ले जाना चाहिए. इसके लिए, किसी प्रॉम्प्ट, इंटरस्टीशियल पेज या लॉगिन की ज़रूरत नहीं होनी चाहिए. पक्का करें कि उपयोगकर्ताओं को स्टेशन दिखे, भले ही उन्होंने कभी ऐप्लिकेशन न खोला हो. स्टेशन के लिए, यूआरआई में अगर पार्टनर के पास iOS पर चलने वाला रेंटल ऐप्लिकेशन है, तो यह फ़ील्ड भरना ज़रूरी है. iOS यूनिवर्सल लिंक का उदाहरण:
|
stations[].rental_uris.web |
URL | वैकल्पिक | ऐसा यूआरएल जिसका इस्तेमाल वेब ब्राउज़र, इस स्टेशन पर वाहन किराए पर लेने के बारे में ज़्यादा जानकारी दिखाने के लिए कर सकता है. यह यूआरएल, किसी स्टेशन का डीप लिंक होना चाहिए. यह ऐसा सामान्य रेंटल पेज नहीं होना चाहिए जिसमें एक से ज़्यादा स्टेशनों की जानकारी शामिल हो. डीप लिंक ऐसा होना चाहिए जो उपयोगकर्ता को सीधे स्टेशन पर ले जाए. इसके लिए, किसी भी तरह के प्रॉम्प्ट, इंटरस्टीशियल पेज या लॉगिन की ज़रूरत नहीं होनी चाहिए. पक्का करें कि उपयोगकर्ताओं को स्टेशन दिखे, भले ही उन्होंने कभी ऐप्लिकेशन न खोला हो. स्टेशन के लिए, यूआरएल में अगर इस फ़ील्ड को सेट नहीं किया जाता है, तो इसका मतलब है कि वेब ब्राउज़र के लिए डीप लिंक काम नहीं करते. उदाहरण वैल्यू:
|
यहां station_information.json
का उदाहरण दिया गया है:
"stations": [
{
"station_id": "597",
"name": "Silverthorne Road, Battersea",
"lat": 51.472865,
"lon": -0.148059,
"capacity": 10,
"rental_uris": {
"android": "https://www.example.com/app?sid=1234567890&platform=android",
"ios": "https://www.exampleexample.com/app?sid=1234567890&platform=ios",
"web": "https://www.example.com/app?sid=1234567890&platform=web"
}
},
]
ज़रूरी है: station_status.json (डॉक किया गया सिस्टम)
ज़रूरत के हिसाब से, GBFS स्पेसिफ़िकेशन देखें.
इस फ़ीड में, सार्वजनिक बाइक शेयरिंग स्टेशनों की मौजूदा स्थिति के बारे में अप-टू-डेट जानकारी होती है.
फ़ील्ड का नाम | टाइप | आवश्यकता | ब्यौरा |
---|---|---|---|
stations |
Array | ज़रूरी है | ऑब्जेक्ट का कलेक्शन. इसमें हर ऑब्जेक्ट, सिर्फ़ एक स्टेशन के बारे में बताता है. |
stations[].station_id |
स्ट्रिंग | ज़रूरी है | स्टेशन का आइडेंटिफ़ायर. |
stations[].num_bikes_available |
सकारात्मक पूर्णांक | ज़रूरी है |
यह एक नॉन-नेगेटिव पूर्णांक है. यह स्टेशन पर मौजूद उन बाइकों की संख्या दिखाता है जो ठीक से काम कर रही हैं और जिन्हें किराए पर दिया जा सकता है. यह पता लगाने के लिए कि स्टेशन पर फ़िलहाल साइकल किराए पर मिलती हैं या नहीं, आपको स्टेशन के |
stations[].vehicle_types_available |
Array | वैकल्पिक |
ऑब्जेक्ट का ऐसा कलेक्शन जो वाहनों की कुल संख्या के बारे में बताता है. साथ ही, स्टेशन पर उपलब्ध हर तरह के वाहन के हिसाब से उनकी संख्या के बारे में भी बताता है. हर ऑब्जेक्ट, उससे जुड़े वाहन के टाइप के लिए वाहनों की कुल संख्या को मॉडल करता है. इन ऑब्जेक्ट में मौजूद वाहनों की कुल संख्या, |
stations[].vehicle_types_available[].vehicle_type_id |
आईडी | ज़रूरी है |
स्टेशन पर उपलब्ध हर तरह के वाहन की |
stations[].vehicle_types_available[].count |
सकारात्मक पूर्णांक | ज़रूरी है |
स्टेशन पर मौजूद |
stations[].num_docks_available |
सकारात्मक पूर्णांक | कुछ शर्तों के मुताबिक ज़रूरी है |
अगर स्टेशन पर डॉकिंग की सुविधा अनलिमिटेड नहीं है, तो इस फ़ील्ड की वैल्यू देना ज़रूरी है. उदाहरण के लिए, वर्चुअल स्टेशन में डॉकिंग की असीमित क्षमता होती है और इस फ़ील्ड की ज़रूरत नहीं होती. यह एक नॉन-नेगेटिव पूर्णांक होता है. इससे स्टेशन पर मौजूद, काम कर रहे डॉक की कुल संख्या के बारे में पता चलता है. इन डॉक में वाहन वापस रखे जा सकते हैं. यह पता लगाने के लिए कि स्टेशन पर फ़िलहाल बाइक वापस ली जा रही हैं या नहीं, आपको स्टेशन के |
stations[].is_installed |
बूलियन | ज़रूरी है |
यह बूलियन वैल्यू है. इससे पता चलता है कि स्टेशन फ़िलहाल सड़क पर है और इंस्टॉल किया गया है या नहीं. अगर स्टेशन को सड़क पर इंस्टॉल किया गया है, तो अगर स्टेशन सड़क पर इंस्टॉल नहीं किया गया है, तो |
stations[].is_renting |
बूलियन | ज़रूरी है |
यह बूलियन वैल्यू बताती है कि स्टेशन पर फ़िलहाल साइकल किराए पर मिलती हैं या नहीं. अगर स्टेशन पर फ़िलहाल किराये पर साइकल मिलती हैं, तो इसे अगर स्टेशन पर फ़िलहाल साइकल किराये पर नहीं मिलती हैं, तो |
stations[].is_returning |
बूलियन | ज़रूरी है |
यह एक बूलियन है. इससे पता चलता है कि स्टेशन पर फ़िलहाल साइकल वापस ली जाती हैं या नहीं. अगर स्टेशन पर फ़िलहाल बाइक वापस लेने की सुविधा उपलब्ध है, तो अगर स्टेशन पर फ़िलहाल बाइक लौटाने की सुविधा उपलब्ध नहीं है, तो |
यहां station_status.json
का उदाहरण दिया गया है:
"stations": [
{
"station_id": "2",
"num_bikes_available": 6,
"vehicle_types_available": [
{
"vehicle_type_id" : "scooter_electric",
"count" : 2
},
{
"vehicle_type_id" : "bike_manual",
"count" : 4
}
],
"num_docks_available": 30,
"is_installed": true,
"is_renting": true,
"is_returning": true,
"last_reported": 1576119631
},
]