2010-10-07 6 views
16

मेरे पास स्थान प्रोपरी पर भू-स्थानिक इंडेक्स के साथ स्टोर का संग्रह है।मोंगोडीबी बाउंड क्वेरीज़: मैं मील को रेडियन में कैसे परिवर्तित करूं?

जो मैं करने की कोशिश कर रहा हूं उसे उपयोगकर्ता के अक्षांश, अक्षांश और एक खोज त्रिज्या (मील) दिया गया है, मैं उन पैरामीटर के भीतर मौजूद स्टोर की सूची वापस करना चाहता हूं।

मैंने निम्नलिखित उदाहरण को मोंगोडीबी दस्तावेज (http://www.mongodb.org/display/DOCS/Geospatial+Indexing) पर देखा, लेकिन ऐसा लगता है कि दूरी रेडियंस में है।

center = [50, 50] 
radius = 10 
db.places.find({"loc" : {"$within" : {"$center" : [center, radius]}}}) 

तो मील से रेडियंस को परिवर्तित करने के लिए सूत्र क्या है?

समाधान mongodb-user पर भयानक लोगों ने मुझे जवाब खोजने में मदद की। असल में, जो मैं वास्तव में खोज रहा था वह दूरी को सीमित करने का एक तरीका था।

के अनुसार, अद्यतन प्रलेखन, वहाँ क्वेरी के पास $ करने के लिए एक 3 पैरामीटर है: तुम भी एक अधिकतम दूरी

db.places.find({ loc : { $near : [50,50] , $maxDistance : 5 } }).limit(20) 

$ maxDistance के लिए मूल्य रेडियन में है के साथ निकट $ उपयोग कर सकते हैं; इसलिए, मुझे अपनी दूरी मील में लेना पड़ा और इसे 69 तक विभाजित करना पड़ा।

धन्यवाद!

+0

मैं mongdb-उपयोगकर्ता Google समूह पर अपने प्रश्न पोस्ट करने के आधार पर अपना जवाब खोजने के लिए सक्षम था (http://groups.google.com/group/mongodb-user/browse_thread/धागा/d37c781bbfff5f08)। – Abe

+4

नोट: 6 9 तक विभाजित करना मील से * डिग्री * तक रेडियंस नहीं है। डिग्री यहां सही हैं क्योंकि यह एक सादा ओल ''$ के पास' क्वेरी है (जिसका अर्थ है 'अधिकतम $ अधिकतम समन्वय समान इकाइयों में होना चाहिए), एक गोलाकार क्वेरी नहीं है (जो * * अधिकतम $ अधिकतम वितरण की आवश्यकता होती है) रेडियंस में रहें)। –

उत्तर

15

जैसे दस्तावेज़ कहते हैं:

सभी दूरी रेडियंस का उपयोग करती हैं। यह आपको इकाइयों की अपनी पसंद में दूरी प्राप्त करने के लिए पृथ्वी के त्रिज्या (लगभग 6371 किमी या 3 9 5 9 मील) तक आसानी से गुणा करने की अनुमति देता है। इसके विपरीत, प्रश्न करते समय पृथ्वी के त्रिज्या से विभाजित करें।

तो आपको पृथ्वी त्रिज्या द्वारा अपने त्रिज्या को विभाजित करने की सरल आवश्यकता है। अपने उदाहरण में यह होगा:

radius = 10/3959
+0

क्षमा करें, मुझे नहीं लगता कि यह है। मुझे कोई परिणाम नहीं मिल रहा है और जब मैं SQL सर्वर में समकक्ष चलाता हूं तो मुझे परिणाम मिलते हैं – Abe

+0

मोंगो डीबी का कौन सा संस्करण आप उपयोग करते हैं? – walla

+0

मैं विंडोज 64 बिट – Abe

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