हम इसे लगभग 1200 स्थानों के लिए करते हैं। मैं फ्लाई पर हावरसिन फॉर्मूला का उपयोग करता हूं हालांकि आपके आवेदन के आधार पर, एसक्यूएल के बजाय इसे PHP में स्टोर करना बेहतर हो सकता है। (हमारा कार्यान्वयन .NET में है इसलिए आपका मिलेज भिन्न हो सकता है)।
वास्तव में हमने जिस तरीके से इसे कार्यान्वित किया है, उसके साथ हमारी सबसे बड़ी कमी यह है कि प्रत्येक गणना (हाल ही में तक) को डेटा स्तर पर गणना की जानी चाहिए जो दर्दनाक धीमा था (जब मैं धीमा कहता हूं, तो मेरा मतलब वास्तव में गैर-तात्कालिक एक या तो), लेकिन यह इस तथ्य के कारण था कि इसे आपूर्ति किए गए ज़िप कोड के आधार पर सभी 1200 स्थानों की दूरी की गणना करना पड़ा।
आपके द्वारा चुने गए मार्ग के आधार पर, रेखांश और अक्षांश को देखकर और पूर्वनिर्धारित सीमा के बाहर वाले लोगों को हटाकर संख्या दूरी की गणना तेज करने के तरीके हैं (उदाहरण के लिए यदि आप 20 के भीतर सभी पते को देख रहे हैं मील की एक रेखांश सीमा है जिसे आप गणना कर सकते हैं कि सभी पते को 20 मील दूर होने के लिए गिरना पड़ता है।) यदि आवश्यकता हो तो यह आपको तेज कर सकता है।
हम वास्तव में हमारे डेटाबेस में सभी संभावित संयोजनों को संग्रहीत करने पर विचार करते थे। हकीकत में ऐसा लगता है कि यह एक बड़ा डेटा स्टोर हो सकता है, लेकिन यह वास्तव में चीजों के बड़े दायरे में नहीं है। इंडेक्स के साथ यह काफी तेज़ हो सकता है, और आपको एल्गोरिदम ऑप्टिमाइज़ेशन इत्यादि के बारे में चिंता करने की ज़रूरत नहीं है। हमने इसके खिलाफ फैसला किया, क्योंकि हमारे पास सी # में समीकरण था, और इसने हमें सभी गणनाओं को करने के लिए आवश्यक जानकारी को कैश करने की अनुमति दी व्यापार स्तर या तो ठीक काम करेगा, यह सिर्फ आपकी बात है कि आपकी वरीयता क्या है।
यह भी देखें http://www.movable-type.co.uk/scripts/latlong.html#cosine-law – Arjan