चुनें कि आपको कौनसी जानकारी दिखानी है

जब किसी रूट का हिसाब लगाने या रूट मैट्रिक्स को कंप्यूट करने के लिए किसी तरीके को कॉल किया जाता है, तो आपको यह बताना होगा कि रिस्पॉन्स में कौनसे फ़ील्ड दिखाने हैं. ऐसा करने के लिए, आपको यह बताना होगा कि कौनसी जानकारी चाहिए. लौटाए गए फ़ील्ड की कोई डिफ़ॉल्ट सूची नहीं है. अगर इस सूची को छोड़ दिया जाता है, तो ये तरीके गड़बड़ी दिखाते हैं.

रिस्पॉन्स फ़ील्ड मास्क बनाकर, फ़ील्ड की सूची तय की जा सकती है. इसके बाद, यूआरएल पैरामीटर $fields या fields का इस्तेमाल करके या एचटीटीपी या जीआरपीसी हेडर X-Goog-FieldMask का इस्तेमाल करके, रिस्पॉन्स फ़ील्ड मास्क को किसी भी तरीके से पास किया जा सकता है.

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

यूआरएल पैरामीटर के बारे में ज़्यादा जानकारी के लिए, सिस्टम पैरामीटर देखें.

रिस्पॉन्स फ़ील्ड मास्क तय करें

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

फ़ील्ड पाथ इस तरह बनाएं:

topLevelField[.secondLevelField][.thirdLevelField][...]
  • कंप्यूट रूट का फ़ील्ड मास्क
    • REST: जवाब में दिए जाने वाले रिस्पॉन्स में, रूट ऑब्जेक्ट के फ़ील्ड के बारे में बताता है, जिनके आगे routes. लगा होता है, जैसे कि routes.distanceMeters.
    • gRPC: रिटर्न के रिस्पॉन्स में Route ऑब्जेक्ट के फ़ील्ड बताता है.
  • कंप्यूट रूट मैट्रिक्स फ़ील्ड मास्क

फ़ील्ड मास्क बनाने के तरीके के बारे में ज़्यादा जानकारी के लिए, field_mask.proto देखें.

तय करें कि कौनसे फ़ील्ड मास्क का इस्तेमाल करना है

यह तय करने का तरीका यहां बताया गया है कि आपको किस फ़ील्ड मास्क का इस्तेमाल करना है:

  1. * के फ़ील्ड मास्क का इस्तेमाल करके सभी फ़ील्ड का अनुरोध करें.
  2. जवाब में फ़ील्ड की हैरारकी देखें और तय करें कि आपको कौनसे फ़ील्ड चाहिए.
  3. फ़ील्ड हैरारकी का इस्तेमाल करके अपना फ़ील्ड मास्क बनाएं.

उदाहरण के लिए, ट्रांज़िट रास्ते से मिलने वाले इस आंशिक रिस्पॉन्स के लिए:

 "routes": [
  {
    "legs": [
    {
      "distanceMeters": 12886,
    }
...
]}]

अगर आपको सिर्फ़ distanceMeters फ़ील्ड दिखाना है, तो आपका फ़ील्ड मास्क यह है:

routes.legs.distanceMeters

एक और उदाहरण: जवाब में legs के तहत सब कुछ लौटाने के लिए, आपका फ़ील्ड मास्क यह है:

routes.legs

फ़ील्ड पाथ तय करें

इस सेक्शन में, रिस्पॉन्स फ़ील्ड मास्क के हिस्से के तौर पर फ़ील्ड पाथ तय करने के तरीके के बारे में उदाहरण दिए गए हैं.

computeRoutes को REST कॉल करें

पहले उदाहरण में, किसी रास्ते का हिसाब लगाने के लिए, computeRoutes तरीके के लिए REST कॉल का इस्तेमाल किया गया है. इस उदाहरण में, हेडर में आपको फ़ील्ड मास्क तय करने हैं, ताकि रिस्पॉन्स के तौर पर Route.distanceMeters और Route.duration फ़ील्ड दिखाए जा सकें. फ़ील्ड के नाम से पहले routes लगाना न भूलें.

-H X-Goog-FieldMask: routes.distanceMeters,routes.duration

computeRouteMatrix को REST कॉल करें

रूट मैट्रिक्स का पता लगाने के लिए इस्तेमाल किए गए REST computeRouteMatrix तरीके के लिए, हेडर में यह बताएं कि ऑरिजिन और डेस्टिनेशन के हर कॉम्बिनेशन के लिए, originIndex, destinationIndex, और duration को दिखाना है या नहीं:

-H X-Goog-FieldMask: originIndex,destinationIndex,duration

gRPC कॉल

gRPC के लिए, ऐसा वैरिएबल सेट करें जिसमें रिस्पॉन्स फ़ील्ड मास्क शामिल हो. इसके बाद, उस वैरिएबल को अनुरोध में भेजा जा सकता है.

const (
  fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline"
)

फ़ील्ड पाथ का ध्यान रखना

जवाब में सिर्फ़ वे फ़ील्ड शामिल करें जिनकी आपको ज़रूरत है. सिर्फ़ उन फ़ील्ड को लौटाना जिनकी आपको ज़रूरत है:

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

रूट टोकन का अनुरोध करें

यह अनुरोध करने के लिए कि Routes API, जनरेट किए गए रूट के लिए रूट टोकन दिखाता है, रूट टोकन लौटाने की ज़रूरी शर्तों को पूरा करें. इसके बाद, टोकन का अनुरोध करने के लिए, routes.route_token फ़ील्ड मास्क का इस्तेमाल करें:

  1. travel_mode को DRIVING पर सेट करें.
  2. routing_preference को TRAFFIC_AWARE या TRAFFIC_AWARE_OPTIMAL पर सेट करें.
  3. देखें कि आपका कोई भी रास्ता वेपॉइंट via वेपॉइंट नहीं है.
  4. रूट टोकन फ़ील्ड मास्क तय करें:
    -H X-Goog-FieldMask: routes.route_token

नेविगेशन SDK टूल में, पहले से तय किए गए रास्ते का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, रूट प्लान करना (Android) या रूट प्लान करना (iOS) देखें.

रूट टोकन का उदाहरण

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

curl -X POST -d
{"origin":{
    "location": {
        "latLng":{
            "latitude":  -37.8167,
            "longitude": 144.9619
        }
    }
},
"destination":{
    "location": {
        "latLng":{
            "latitude":-37.8155,
            "longitude": 144.9663
        }
    }
},
"routingPreference":"TRAFFIC_AWARE",
"travelMode":"DRIVE"
}
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H X-Goog-FieldMask: routes.route_token,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
'https://routes.googleapis.com/directions/v2:computeRoutes'

ज़्यादा जानकारी के लिए, Compute Routes API रेफ़रंस देखें.