सीमा तक पहुँचने से पहले अपनी कुंजी के उपयोग पर नज़र रखें
काम के साथ-साथ अपने कोटा हेडर देखते रहने से पता चलता है कि कब सीमा करीब आ रही है, किसी अनुरोध के असल में अस्वीकार होने से काफ़ी पहले।
जो डिलीवरी सेवा केवल एक निश्चित क्षेत्र को कवर करती है, उसे उस क्षेत्र के बाहर के पतों को ऑर्डर होने से पहले अस्वीकार करने का तरीका चाहिए, न कि तब जब डिस्पैच के दौरान किसी ड्राइवर को इसका पता चले।
जब कोई ग्राहक अपना डिलीवरी पता जमा करे, तो ऑर्डर स्वीकार करने से पहले उसे जियोकोड करें।
GET /v1/forward?q=10 Downing Street, London&limit=1{
"status": "ok",
"results": [
{"formatted": "10 Downing Street, London, UK", "lat": 51.5033, "lon": -0.1276, "type": "address", "precision": "house", "confidence": 0.96, "place_id": "op678", "components": {}}
]
}ग्राहक के निर्देशांक और अपने तय डिलीवरी हब के निर्देशांक हाथ में होने पर, अपने कोड में एक मानक haversine फ़ॉर्मूले से दोनों के बीच की सीधी दूरी निकालें, और उसकी तुलना अपने डिलीवरी दायरे से करें।
distance_km = haversine(hub_lat, hub_lon, 51.5033, -0.1276)
if distance_km > max_radius_km:
reject_order()जियोकोडिंग परिणाम पर कम कॉन्फ़िडेंस स्कोर का मतलब है कि पता ख़ुद अस्पष्ट था, ज़रूरी नहीं कि वह आपके दायरे के बाहर हो। कम कॉन्फ़िडेंस वाले मैच को दायरे से बाहर होने के साफ़ अस्वीकार से अलग संभालें, शायद ऑर्डर को सीधे अस्वीकार करने के बजाय ग्राहक से अपना पता पुष्टि करने या सुधारने के लिए कहकर।
एक से ज़्यादा डिलीवरी हब चलाने वाले व्यवसाय को केवल एक नहीं, बल्कि हर हब तक की दूरी निकालनी चाहिए, और अगर किसी भी हब का दायरा पते को कवर करता है तो ऑर्डर स्वीकार करना चाहिए। ऑर्डर को उस हब को सौंपना जो सबसे नज़दीक निकला, उसी गणना से फ़ुलफ़िलमेंट पक्ष को भी सही तरीके से तैयार कर देता है, क्योंकि दूरी के हिसाब से क्रमबद्ध करते ही आपके पास जीतने वाले हब की पहचान पहले से होती है।
nearest_hub = min(hubs, key=lambda h: haversine(h.lat, h.lon, cust_lat, cust_lon))
if nearest_hub.distance_km > nearest_hub.max_radius_km:
reject_order()जैसे ही distance_km किसी मामूली मात्रा से, जैसे कुछ दर्जन मीटर से, max_radius_km से ज़्यादा हो, ग्राहक को कोई स्पष्टीकरण या विकल्प दिए बिना ऑर्डर अस्वीकार न करें। सीमा रेखा पर लगभग बैठा पता मैप पर दायरा खींचने का एक सामान्य परिणाम है, और बिना संदर्भ का सीधा अस्वीकार उस ग्राहक को मनमाना लगता है जो ऐसी रेखा से दो सड़क बाहर रहता है जिसे वह देख नहीं सकता। केवल अस्वीकार करने के बजाय निकाली गई दूरी और कवर किया गया दायरा दिखाना कम से कम यह समझाता है कि ऐसा क्यों हुआ।
सीधी रेखा वाला दायरा एक सरल अनुमान है और कभी-कभी ऐसे बिंदु को शामिल कर लेगा जो सड़क के रास्ते तकनीकी रूप से दूर है, या ऐसे बिंदु को बाहर कर देगा जो सड़क से पास है लेकिन सीधी रेखा में दूर, जैसे किसी नदी के पार जहाँ पास में कोई पुल न हो। ज़्यादातर डिलीवरी ज़ोन जाँचों के लिए यह अनुमान काफ़ी है, और इसे और बेहतर करने के लिए रूटिंग डेटा चाहिए होगा, जो जियोकोडिंग लुकअप के दायरे से बाहर है।
हर पते की जाँच एक जियोकोडिंग अनुरोध है, या अगर आप पते को एक ही निर्देशांक स्थानीय रूप से दोबारा उपयोग करने के बजाय अलग-अलग कॉल से हब सूची के मुक़ाबले जाँचते हैं, तो तुलना किए गए हर संभावित हब के लिए एक अनुरोध, क्योंकि केवल पते को ही जियोकोड करना होता है, हर हब को नहीं। हर जमा किए गए ऑर्डर की जाँच करने वाला डिलीवरी फ़ॉर्म किसी सामान्य स्थानीय व्यवसाय के लिए हर कुंजी के साथ मिलने वाले प्रतिदिन 2,500 मुफ़्त अनुरोधों के भीतर आराम से रहता है, और प्रीपेड क्रेडिट पर तभी जाता है जब ऑर्डर की मात्रा काफ़ी बढ़ जाए।
क्षेत्र से बाहर के ऑर्डर को डिस्पैच के समय के बजाय जमा करते समय ही अस्वीकार करना दोनों पक्षों को बाद की बेकार बातचीत से बचाता है। पैरामीटर का पूरा विवरण फ़ॉरवर्ड जियोकोडिंग दस्तावेज़ में है, और मौजूदा मूल्य श्रेणियाँ मूल्य निर्धारण पेज पर हैं।