मेरे पास कुछ ऑब्जेक्ट्स हैं जो भू-स्थानीयकृत हैं (मेरे पास अक्षांश + देशांतर प्रत्येक वस्तु के लिए है)। मेरी ऐप को उन वस्तुओं को प्रदर्शित करने की आवश्यकता है जो मोबाइल डिवाइस की जीपीएस स्थिति के आसपास 3 किलोमीटर हैं। मेरे पास कई हजार वस्तुएं हैं और वे बड़े क्षेत्र में स्थानांतरित हैं (उदाहरण के लिए, कई अमेरिकी राज्य, कई छोटे देश), जिसका अर्थ है मेरी वस्तुओं की सूची में, मैं एनवाईसी में स्थित एक और मियामी में एक और हो सकता हूं लेकिन मैं भी वस्तुओं जो बहुत करीब हैं (कुछ मीटर)।त्वरित खोज के लिए भौगोलिक डेटा को क्रमबद्ध करने के लिए कैसे करें
वर्तमान में, मेरी ऐप एक पुनरावृत्ति खोज करता है। प्रत्येक ऑब्जेक्ट्स के लिए मैं जीपीएस स्थिति के साथ दूरी की गणना करता हूं और यदि दूरी < = 3 केएम है तो मैं ऑब्जेक्ट रखता हूं और मैं इसे अनदेखा करता हूं। यह एल्गोरिदम बहुत कुशल नहीं है और मैं एक एल्गोरिदम की तलाश में हूं जो बेहतर प्रदर्शन प्रदान करेगा।
मुझे लगता है कि भौगोलिक समन्वय का उपयोग करके मेरी वस्तुओं को सॉर्ट करने का एक तरीका है और जीपीएस स्थिति के आस-पास स्थित वस्तुओं को और तेज़ी से ढूंढने के लिए अगला तरीका है।
मेरा वर्तमान विचार खोज क्षेत्र को सीमित करने के लिए "चरम बिंदु", उत्तर/दक्षिण/पूर्व/पश्चिम (जीपीएस स्थिति के 3 किमी से) के साथ आयत की गणना करना है। इसके बाद मैं केवल इस बॉक्स के अंदर वस्तुओं के लिए दूरी की गणना करूंगा। मैं कुछ बेहतर किया जा सकता है, लेकिन मैं विचार नहीं है ...
किसी भी प्रस्ताव की सराहना की होगी ;-) धन्यवाद,
Séb लगता है।
मुझे लगता है कि लैट/लॉन में सीधे क्वाड्री लगभग सभी परिदृश्यों के लिए काम करता है। यदि देशांतर 0-360 है तो मैं इसे बदल दूंगा ताकि डेटा में "सीम" शून्य की बजाय दिनांक रेखा पर हो (इसलिए सभी मुद्दे केवल उत्तरी ध्रुव, दक्षिण ध्रुव और प्रशांत में होंगे) । –
वास्तव में धन्यवाद, मैं ऑक्ट्री और केडी-पेड़ का अध्ययन करूंगा। यदि मेरे छोटे दिमाग के लिए बहुत जटिल नहीं है, तो शायद यह इसके साथ कुछ कर सकता है! – sebastien