2008-11-16 12 views
5

मुझे पता है कि पोस्टग्रेज़ में भौगोलिक निर्देशांक संग्रहीत करने के लिए डेटाटाइप है। लेकिन मैं एक आरडीबीएमएस अज्ञेय समाधान की तलाश में हूं। वर्तमान में मैं MySQL में दशमलव (25,20) का उपयोग कर रहा हूं। मैं बाद में किसी दिए गए स्थान से दी गई दूरी के आधार पर इन स्थानों को देखने के लिए इस डेटा का उपयोग कर रहा हूं। इस तरह के डेटा को स्टोर करने का सबसे अच्छा तरीका कौन सा होगा?डेटाबेस में भौगोलिक स्थान संग्रहीत करने के लिए सबसे प्रभावी तरीका

उत्तर

1

मानक here है। यद्यपि यह आपके जैसे सरल उपयोग मामले के लिए बहुत अधिक है, लेकिन यह आपको कुछ विचार दे सकता है कि यह वास्तव में क्यों जाना जा सकता है और कुछ ओजीसी अनुपालन पैकेजों का उपयोग आजकल कई डेटाबेस आज भी MySQL है।

उसमें असफल होने पर यह मानते हुए कि आप दूरी की गणना, सटीक आप काम करेंगे की जरूरत है कि किसी भी चल बिन्दु संख्या के लिए एल्गोरिथम को लागू करेगा।

5

एक और अच्छी तकनीक मूल्यों को निरंतर करके गुणा करना और उन्हें पूर्णांक मान के रूप में स्टोर करना है। पूर्णांक का उपयोग केवल गणना को गति में मदद कर सकते हैं।

आप वास्तव में केवल दशमलव बिंदु के बाद 5 + मान संग्रहीत करने की जरूरत है चाहिए जब तक आप परिशुद्धता के गंभीर जरूरत में हैं।

यह Latitude Longitude Data Storage Specification एक चार्ट कि परिशुद्धता दशमलव स्थानों बनाम चलता देता है।

# decmal places, example, precision 
5 51.22135 ± 0.8 m 
6 50.895132 ± 0.08 m 

7 8 मिमी या 0.314 इंच के लिए काम करेगा।

0

के बाद @vfilby's जवाब, क्यों दो अलग-अलग पूर्णांक प्रकार के रूप में संख्या के दो हिस्सों की दुकान नहीं?

1

AFAIK, एमएस एसक्यूएल सर्वर 2008 एक डेटा प्रकार के रूप में भू-स्थितियां के लिए समर्थन हासिल है। मुझे पता है कि आप MySQL का उपयोग कर रहे हैं, लेकिन सिर्फ सोचा कि मैं इस सवाल पर इसका उल्लेख करूंगा।

+0

डेटाटाइप भौगोलिक और भौतिकी हैं। वह भौगोलिक प्रयोग करना चाहते हैं। –

0

मैं हमेशा बस, अक्षांश और देशांतर को बचाने के लिए क्योंकि परिशुद्धता में त्रुटि उपकरणों उपयोग हम की सटीकता से कम होता है 4 बाइट फ्लोटिंग बिंदु कॉलम का उपयोग किया है। यह आपके आवेदन के मामले में नहीं हो सकता है, लेकिन यदि यह है कि आप एक फ्लोट से अधिक आरडीबीएमएस-अज्ञेयवादी नहीं प्राप्त कर सकते हैं।

1

vfilby's answer शायद सबसे अच्छा एक है, हालांकि कई आरडीबीएमएस अनुक्रमण चरित्र का अनुक्रमण घने पूर्णांक (या चल बिन्दु) क्षेत्रों की तुलना में क्षेत्रों के लिए बेहतर समर्थन किया है।

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

फिर से: यदि आपके पास बहुत अधिक डेटा नहीं है, या आप इस तरह के आरडीबीएमएस का उपयोग नहीं कर रहे हैं, तो vfilby suggested करें।

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