2012-04-22 12 views
6

का समर्थन करता है, मैं जावा में "आपके नज़दीकी ब्याज का पता लगाएं" की समस्या को हल करने की कोशिश कर रहा हूं। यानी मेरे पास कई अक्षांश हैं, इंटरस्ट के बहुत सारे अंक हैं। और मैं 800 मीटर के भीतर लोगों को ढूंढना चाहता हूं। मान लीजिए कि मैं अपने वर्तमान लेट और लॉग को जानता हूं।मेमोरी डेटाबेस में जो स्थानिक क्वेरी

मेरी समस्या यह है कि इस एप्लिकेशन को अकेले खड़े होना चाहिए। तो मैं परिणाम खोजने के लिए एक स्थानिक डेटाबेस क्वेरी पर भरोसा नहीं कर सकता mysql का उपयोग कर मैं इस उपयोगी पाया है http://xebee.xebia.in/2010/10/28/working-with-geolocations/

वर्तमान में मैं memeory db कि spatital प्रश्नों का समर्थन करता है में एक नहीं मिल रहा। मैं http://jsi.sourceforge.net/

पर कुछ आर-ट्री का उपयोग करने का सहारा ले रहा था, लेकिन मुझे पता है कि यह एक सटीक खोज के बजाय एक आयताकार का उपयोग करने के लिए सही नहीं होगा।

किसी के पास कोई सिफारिश है?

उत्तर

1

असल में जेएसआई लाइब्रेरी (http://jsi.sourceforge.net) इस समस्या के लिए काफी सही है। यह इस सटीक परिदृश्य का समर्थन करने के लिए लिखा गया था।

पास के आयत (या अंक) के लिए खोज करते समय आप अधिकतम दूरी की आपूर्ति कर सकते हैं, और यह बढ़ती दूरी के क्रम में परिणाम वापस कर देगा।

यह "800 मीटर की त्रिज्या के भीतर हर बिंदु को वापस करने" की क्वेरी का समर्थन नहीं करता है, लेकिन व्यवहार में आप एक सीमा चाहते हैं। तो जेएसआई पुस्तकालय अधिक उपयोगी "800 मीटर की त्रिज्या के भीतर निकटतम 50 अंक लौटाता है" का समर्थन करता है।

यदि आप वास्तव में त्रिज्या के भीतर हर बिंदु चाहते हैं, तो आप अंक की संख्या को बड़ी संख्या में बढ़ा सकते हैं और निकटतम एन क्वेरी चला सकते हैं, या एक छेड़छाड़ क्वेरी कर सकते हैं और अपने कोड में दूरी से फ़िल्टर कर सकते हैं।

1

अल्टीबेस नामक एक इन-मेमोरी डेटाबेस है जो स्थानिक सुविधाओं का समर्थन करता है। यह ओजीसी विनिर्देश देखता है। आप इसका उपयोग कर सकते हैं।

संबंधित मुद्दे