2009-12-22 6 views
37

मेरे पास मेरे MySQL डेटाबेस दोनों रेखांश और अक्षांश निर्देशांक (जीपीएस डेटा) में है।एक जीपीएस समन्वय के लिए मेरे डेटाबेस में कितने महत्वपूर्ण अंक स्टोर करना चाहिए?

column  type 
------------------------ 
geolat  decimal(10,6) 
geolng  decimal(10,6) 

प्रश्न::

यह वर्तमान के रूप में संग्रह किया गया है मैं वास्तव में decimal(10,6) के रूप में बड़ा ठीक से डेटा समन्वय स्टोर करने के लिए एक डेटा प्रकार की ज़रूरत है?

चूंकि मेरे पास देशांतर और अक्षांश पर संयुक्त सूचकांक है, इसलिए यह सूचकांक आकार बहुत बड़ा है। अगर मैं कुछ भी समझौता किए बिना इसे छोटा कर सकता हूं, तो यह बहुत अच्छा होगा।

+0

इसके अलावा, मुझे एहसास है कि MySQL में एक विशेष प्लगइन है - लेकिन मेरे वेबहोस्ट ने दुर्भाग्यवश इंस्टॉल नहीं किया है, इसलिए यह कोई विकल्प नहीं है (अगर कोई इसे अनुशंसा करता है) – teddyk

+0

स्टैक ओवरव्लो में आपका स्वागत है! महान पहला सवाल। – Sampson

+0

@ जोनाथन, धन्यवाद! – teddyk

उत्तर

33

WGS84 डेटाम को आमतौर पर 5 दशमलव स्थानों के साथ पूरी तरह से दशमलव नोटेशन में निर्देशांक के रूप में दिया जाता है, इसलिए अक्षांश (-90 से +90) के लिए आप दशमलव (7, 5) (-90.00000 से 9 0.00000) का उपयोग कर सकते हैं, के लिए देशांतर आप दशमलव (8, 5) (-180.00000 से 180.00000) का उपयोग कर सकते हैं।

.00001 gives an precision of around a meter at the equator

रेंज के DECIMAL/NUMERIC data type is a fixed precision scaled integer और सकारात्मक और नकारात्मक दोनों भागों हमेशा उपलब्ध हैं - वे सटीक या पैमाने को प्रभावित नहीं करते (वहाँ जाहिर है इसके लिए आवश्यक भंडारण है, लेकिन आप एक नहीं मिलता DECIMAL के लिए इसके बारे में पसंद)

+1

क्या संकेत (सकारात्मक/नकारात्मक) स्थान नहीं लेता है? मतलब, "-90.12345" 8 डिजिटल नहीं लेगा और 7 – teddyk

+2

हां, यह डेटाबेस में स्थान लेता है, लेकिन दिए गए डेसिमल विनिर्देश के लिए डेटाबेस में आवश्यक स्थान हमेशा एक संकेत की अनुमति देता है। मैं MySQL की आंतरिक स्टोरेज आवश्यकताओं से परिचित नहीं हूं, लेकिन SQL सर्वर के लिए, दशमलव में 5 बाइट्स (1-9 अंक)/9 बाइट्स (10-19 अंक)/13 बाइट्स (20-28 अंक)/17 बाइट्स लेते हैं (2 9 -38 अंकों) निर्दिष्ट परिशुद्धता के अंकों के आधार पर (यह स्पष्ट रूप से पैमाने से स्वतंत्र है)। –

+0

Google मानचित्र 6 दशमलव स्थानों पर काम करता है। अपने घर पर ज़ूम इन करें, मानचित्र पर राइट क्लिक करें, फिर "इस स्थिति पर केंद्र" चुनें। मानचित्र के बाहर, बस बाईं ओर स्थित लिंक बटन पर क्लिक करें, फिर लिंक यूआरएल में जीपीएस निर्देशांक पाएं। जब मैंने कोशिश की तो यह 6 दशमलव था। – angularsen

0

यह इस बात पर निर्भर करता है कि आप अपनी स्थानीयता को कितना सटीक बनाना चाहते हैं। जाहिर है जितना अधिक सटीक होगा, उतना ही छोटा होगा जितना आपके परिणाम होंगे। मैं सुझाव देता हूं कि आपके मूल्यों को बड़ा रखें, क्योंकि यह वास्तव में बहुत अधिक डेटा नहीं है।

+0

यह केवल घर/घर के स्थान (रियल एस्टेट ऐप) के लिए भू-डेटा स्टोर करने के लिए है। तो इसे सुपर सटीक लेकिन बंद होने की आवश्यकता नहीं है। – teddyk

4

मैंने दशमलव के बाद हमेशा छह अंकों के साथ काम किया है। मैं एक सैन्य अनुबंध के तहत जीआईएस काम करता था और यह पर्याप्त था।

+0

तो, क्या आप कह रहे हैं कि मैं इसे "दशमलव (6,6)" में बदल सकता हूं और ठीक हो सकता हूं? – teddyk

+0

लेकिन जोनाथन नोट्स के रूप में, यह वास्तव में इस बात पर निर्भर करता है कि आप कितना सटीक चाहते हैं। मेरी समझ से, छः अंकों की सटीकता हमें +/- 1 मीटर के आसपास कहीं नीचे ले गई। यह महत्वपूर्ण था क्योंकि हम रासायनिक हथियारों से भरे बंकरों का ट्रैक रखते थे। –

+1

मेरा मानना ​​है कि "10" पूरे क्षेत्र का आकार है, है ना? आपको अक्षांश के लिए +/- xxx.xxxxxx और अक्षांश के लिए +/- xx.xxxxxx समायोजित करने की आवश्यकता होगी। –

3

ध्यान रखें कि डेटा को बढ़ाने के लिए डेटा को कम करना आसान है। आम तौर पर, डेटा सटीकता बढ़ाना रीमेसरिंग से भी कम संभव नहीं है। और remeasuring एक लागत पर आता है। अपनी स्थिति या उद्योग के बारे में और कुछ नहीं जानना, मैं कहूंगा कि जितना संभव हो उतना डेटा/विशिष्टता कैप्चर करें।

आपके द्वारा वास्तव में उपयोग किए जाने वाले डेटा को इस सेट से हटाया जा सकता है। यदि आप उच्च स्तर की विशिष्टता की आवश्यकता को समाप्त करते हैं, तो आप हमेशा बिना रीमेसरिंग के पुनर्मूल्यांकन कर सकते हैं।

इसके अलावा, मुझे यकीन नहीं है कि कच्चे डेटा को अनुक्रमणित करना सबसे अच्छी बात है क्योंकि यह तत्वों का एक अलग सेट नहीं है। कम सटीक/छोटे डेटा बिंदुओं की एक तालिका बनाना इंडेक्स को बहुत छोटा बना देगा।

+0

* हमेशा डेटा संग्रह करने के बारे में सोचते समय इस तरह के प्रश्न पूछें: इसके लिए क्या उपयोग किया जाएगा? इसे पूरा करने के लिए क्या सटीकता/सीमा/जो कुछ भी आवश्यक है? – mlo

1

यदि यह अचल संपत्ति के लिए है तो क्या आपके पास वास्तव में इतने सारे घर हैं कि प्रति पंक्ति 2 बाइट बचाए जा रहे हैं? मैं जितना संभव हो उतना सटीक रखूंगा जब तक कि कोई अच्छा कारण न हो।

+0

मैं अपने सूचकांक के आकार के बारे में अधिक चिंतित हूं क्योंकि मेरे पास देशांतर और अक्षांश दोनों पर एक संयुक्त सूचकांक है। तो अभी, मेरा सूचकांक आकार दशमलव (10,6) + दशमलव (10,6) आकार में है। सूचकांक के लिए जो बहुत बड़ा है। – teddyk

+0

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

0

एनएमईए लैट/लॉन आउटपुट में नियमित जीजीए अनुदान भूमध्य रेखा पर लगभग 3 डी रिज़ॉल्यूशन केवल 3 डीसीएम रिज़ॉल्यूशन है। कुछ ब्रांड 1 मीटर देने के लिए एक कस्टम अतिरिक्त अंक जोड़ते हैं।

4 अंकों deg.mm मिमी/1000 भी आम है।

आप उच्च अंत परिशुद्धता RTK-जीपीएस का उपयोग कर रहे हैं, तो आप मिमी परिशुद्धता

0

तुम भी भंडारण (और/या के साथ काम कर) की कोशिश कर सकते विभिन्न इकाइयों में अपने निर्देशांक पाने के लिए और अधिक स्थानों पर पड़ सकता है। एक परियोजना जिस पर मैंने काम किया था, हमारे सभी निर्देशांक मिलियर्ससेकंड में लंबे समय तक संग्रहीत थे (शायद इनट्स, यह दो साल हो गया है)। यह आंशिक रूप से गति और भंडारण स्थान के लिए किया गया था (यह एक एम्बेडेड सिस्टम था)।लेकिन एक ही तर्क यहां लागू हो सकता है।

0

यदि सभी निर्देशांक एक विशिष्ट क्षेत्र में हैं, तो कुछ केंद्रीय बिंदु (यानी औसत वर्तमान बिंदुओं और गोल को एक संख्या प्राप्त करने के लिए जो आप ज़ोर से कह सकते हैं) को ठीक करें और फिर इस बिंदु के सापेक्ष निर्देशांक संग्रहित करें। इस तरह आप शायद पहले 2-4 सबसे महत्वपूर्ण अंक छोड़ सकते हैं जो बड़ी बचत के लिए बनाता है। लेकिन इस डेटा को केवल कक्षा या दृश्य के माध्यम से संभालना याद रखें जो सच WGS84 कॉर्ड को वापस देता है।

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