सीमा तक पहुँचने से पहले अपनी कुंजी के उपयोग पर नज़र रखें
काम के साथ-साथ अपने कोटा हेडर देखते रहने से पता चलता है कि कब सीमा करीब आ रही है, किसी अनुरोध के असल में अस्वीकार होने से काफ़ी पहले।
दो पतों के बीच की दूरी ऐसी चीज़ नहीं है जिसे जियोकोडिंग API सीधे लौटाता है, क्योंकि दूरी की गणना के लिए केवल निर्देशांक चाहिए, जो फ़ॉरवर्ड एंडपॉइंट आपके भेजे गए किसी भी पते के लिए पहले से देता है।
हर पते के लिए अक्षांश और देशांतर की जोड़ी पाने के लिए हर पते को अलग से, या एक ही बल्क अनुरोध में एक साथ जियोकोड करें।
POST /v1/forward
Content-Type: application/json
["221B Baker Street, London", "10 Downing Street, London"]{
"status": "ok",
"results": [
{"formatted": "221B Baker Street, London, UK", "lat": 51.5237, "lon": -0.1585, "type": "address", "precision": "house", "confidence": 0.95, "place_id": "abc123", "components": {}},
{"formatted": "10 Downing Street, London, UK", "lat": 51.5033, "lon": -0.1276, "type": "address", "precision": "house", "confidence": 0.96, "place_id": "op678", "components": {}}
]
}दो निर्देशांक जोड़ियाँ हाथ में होने पर मानक हैवरसाइन सूत्र लागू करें, जो अक्षांश और देशांतर के अंतर को पृथ्वी की सतह पर सीधी रेखा की दूरी में बदल देता है। ज़्यादातर प्रोग्रामिंग भाषाओं में एक छोटा, अच्छी तरह परखा हुआ हैवरसाइन इम्प्लीमेंटेशन एक छोटे फ़ंक्शन या आम लाइब्रेरी के रूप में उपलब्ध है, इसलिए त्रिकोणमिति शुरू से लिखने की ज़रूरत नहीं है।
distance_km = haversine(51.5237, -0.1585, 51.5033, -0.1276)हैवरसाइन सूत्र अक्षांश और देशांतर को रेडियन में लेता है, लेकिन API रिस्पॉन्स में निर्देशांक हमेशा डिग्री में होते हैं। रेडियन के लिए लिखे गए सूत्र में सीधे डिग्री के मान डालने से ऐसी दूरी मिलेगी जो पहली नज़र में सही लगती है, लेकिन चुपचाप बहुत बड़े गुणक से गलत होती है। पहले डिग्री को रेडियन में बदलें, या ऐसे लाइब्रेरी फ़ंक्शन का उपयोग करें जो बताता हो कि वह कौन-सी इकाई लेता है, और प्रोडक्शन में उस पर भरोसा करने से पहले परिणाम को किसी ऐसी दूरी से जाँचें जो आपको पहले से पता हो।
यही गणना स्वाभाविक रूप से दो से ज़्यादा बिंदुओं पर लागू होती है। किसी रूट के हर पड़ाव को एक ही बल्क अनुरोध में जियोकोड करें, फिर निर्देशांकों की हर लगातार जोड़ी के बीच की हैवरसाइन दूरी जोड़कर रूट की अनुमानित कुल लंबाई पाएँ, जो असली टर्न-बाय-टर्न रूटिंग लागू होने से पहले भी डिलीवरी रूट के त्वरित अनुमान के लिए उपयोगी है।
total_km = haversine(a, b) + haversine(b, c) + haversine(c, d)हैवरसाइन गणना सीधी रेखा की दूरी देती है, असली सड़कों पर गाड़ी चलाने या पैदल चलने की दूरी नहीं। ज़्यादातर उपयोगों के लिए, जैसे आसपास की जगहों को क्रम में लगाना या मोटे तौर पर निकटता का अनुमान लगाना, सीधी रेखा की दूरी काफ़ी है और इसके लिए आपके पास पहले से मौजूद निर्देशांकों के अलावा कुछ नहीं चाहिए। अगर आपको खास तौर पर रूट के हिसाब से यात्रा की दूरी चाहिए, तो वह एक अलग तरह की गणना है जो जियोकोडिंग लुकअप के दायरे से बाहर है।
एंटीमेरिडियन के दोनों ओर के दो बिंदु, या किसी ध्रुव के बहुत करीब के बिंदु, ऐसे सीधे-सादे दूरी सूत्र को गड़बड़ा सकते हैं जो देशांतर के 180 से ऋणात्मक 180 पर घूम जाने का ध्यान नहीं रखता। सामान्य पते से पते की दूरी जाँच में ऐसा कम ही होता है, लेकिन अगर आपका एप्लिकेशन वास्तव में दुनिया के उस हिस्से तक फैला है, तो इसकी जाँच करना ज़रूरी है।
दो पतों को जियोकोड करने में दो अनुरोध लगते हैं, चाहे उन्हें अलग-अलग कॉल के रूप में भेजा जाए या एक बल्क कॉल में। दोनों निर्देशांक जोड़ियाँ मिलने के बाद दूरी की गणना पूरी तरह आपके अपने कोड में होती है और आपके कोटा से इसकी कोई अतिरिक्त लागत नहीं कटती।
अगर दोनों में से कोई पता ऐसा है जिसे आपने पहले जियोकोड करके कैश कर रखा है, तो केवल नए पते के लिए ताज़ा अनुरोध चाहिए, जिससे उस गणना की लागत दो के बजाय एक अनुरोध रह जाती है।
जिस भी पते को आपने अभी तक निर्देशांकों में नहीं बदला है, उसकी दूरी की गणना बस एक जियोकोडिंग अनुरोध दूर है। पूरे रिस्पॉन्स की संरचना के लिए फ़ॉरवर्ड जियोकोडिंग दस्तावेज़ देखें।