2011-08-22 12 views
11

मैंने अलग-अलग क्षेत्रों में अक्षांश और देशांतर संग्रहित किया है। मुझे लेट & Google से एलएनजी निर्देशांक मिल रहा है और कुछ सूत्रों का उपयोग करके आस-पास के स्थानों को खोजने के लिए भी उनका उपयोग किया जाता है। अब कभी-कभी अक्षांश और देशांतर मूल्य इस तरह के 15 दशमलव स्थानों तक पहुंच जाता है -> 15.123456789000001। इन मूल्यों को स्टोर करने के लिए सबसे अच्छा डेटाटाइप क्या होगा? अभी मैं अक्षांश और देशांतर निर्देशांक को स्टोर करने के लिए डबल का उपयोग कर रहा हूं।अलग-अलग क्षेत्रों में अक्षांश और देशांतर को संग्रहीत करने के लिए उपयुक्त mysql डेटाटाइप

अग्रिम में धन्यवाद

+1

संभावित डुप्लिकेट [MySQL डेटाबेस में अक्षांश/अक्षांश को संग्रहीत करते समय उपयोग करने के लिए आदर्श डेटा प्रकार क्या है?] (Http://stackoverflow.com/questions/159255/what-is-the-ideal-data-type उपयोग करने के लिए-कब-भंडारण-अक्षांश-अक्षांश-इन-ए-माइस्क्ल) – Gajus

उत्तर

24

99% समय, आपकी पसंद का कोई फ़्लोटिंग-पॉइंट डेटा प्रकार पर्याप्त होना चाहिए।

हां, मुझे पता है कि वे हमेशा 15 सटीक स्थानों पर मूल्यों का सटीक और सटीक रूप से प्रतिनिधित्व नहीं कर सकते हैं, लेकिन इससे कोई फर्क नहीं पड़ता कि कोई फर्क नहीं पड़ता। लेट/लंबे समय तक 15 दशमलव स्थान कुछ हाइड्रोजन परमाणुओं की चौड़ाई के क्रम पर एक (दावा) सटीकता के साथ एक स्थिति निर्दिष्ट कर रहा है। मीटर के भीतर सटीकता प्राप्त करने के लिए आपको केवल छह दशमलव स्थानों की आवश्यकता है, जो ज्यादातर मामलों के लिए पर्याप्त है। बहुत कम लोगों को कई अनुप्रयोगों के लिए सेंटीमीटर-स्तर सटीकता (8 स्थान) और 10 या 100 मीटर सटीकता से अधिक की आवश्यकता होगी।

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

+0

जानकारी का बड़ा टुकड़ा। क्या आप मुझे सभी accurcies के लिए सटीक सटीकता मैपिंग बता सकते हैं। या इस जानकारी के स्रोत को इंगित करें। –

+1

मीट्रिक सिस्टम और महत्वपूर्ण अंकों के बारे में बड़ी बात यह है कि वे दोनों कारक हैं 10. यदि 8 दशमलव स्थान = 1 सेमी सटीकता, तो 7 स्थान = 10 सेमी, 6 = 100 सेमी, आदि। यह भी ध्यान रखें कि सतह की दूरी एक द्वारा दर्शायी जाती है डिग्री अक्षांश के साथ बदलती है। सटीक मैपिंग प्राप्त करने के लिए, अपने लक्षित अक्षांश पर मीटर में डिग्री के आकार का निर्धारण करने के लिए http://www.csgnetwork.com/degreelenllavcalc.html का उपयोग करें, फिर दशमलव स्थान को आवश्यकतानुसार ले जाएं। –

4

मैंने डेसीमल डेटा प्रकार का उपयोग किया है।

CREATE TABLE IF NOT EXISTS `example` (
    `lat` decimal(18,15) DEFAULT NULL, 
    `long` decimal(18,15) DEFAULT NULL 
); 
+0

क्या इसमें साइन +/- शामिल है? –

+0

आप नकारात्मक संख्याओं को दशमलव प्रकारों में संग्रहीत कर सकते हैं। हालांकि आपके सकारात्मक संख्याओं में + चिह्न संलग्न नहीं होगा। http://dev.mysql.com/doc/refman/5.5/en/fixed-point-types.html – cleanunicorn

1

आप जीआईएस के साथ स्थानिक एक्सटेंशन का उपयोग करने का प्रयास कर सकते हैं। http://dev.mysql.com/doc/refman/5.1/en/spatial-extensions.html

+0

हाँ, स्थानिक एक्सटेंशन का उपयोग करने का यह एक अच्छा तरीका है लेकिन मेरे मामले में अक्षांश और देशांतर पहले से ही अलग-अलग क्षेत्रों में संग्रहीत हैं। तो, संरचना को बदलने के लिए अब मुश्किल है। – jacobian

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