2012-03-05 12 views
8
'43.005895','-71.013202' 

में देशांतर/अक्षांश संग्रहीत करने के लिए उपयोग करने के लिए कोशिश कर रहा है:डाटाटाइप Mysql

INSERT INTO table(fanDetLocZip, fanDetLocCity, fanDetLocState, fanDetLocLat, fanDetLocLong, fanDetLocTZ, fanDetLocDST) 
VALUES(00210, 'Portsmouth', 'NH', '43.005895', '-71.013202', -5, 1); 

मैं वर्तमान में डेटाप्रकार SPATIAL, GEOMETRY उपयोग कर रहा हूँ।

इसका मेरे जैसे त्रुटियों दे रही है:

आप ज्यामिति क्षेत्र

लिए भेज डेटा से ज्यामिति वस्तु प्राप्त नहीं कर सकता सभी मान 2 अंक, और दशमलव के बाद 6 दशमलव स्थानों के लिए है। मैं इसे mysql में कैसे स्टोर करूं?

त्रुटि मैं जब मैं का उपयोग करें:
INSERT INTO Table(fanDetLocZip, fanDetLocCity, fanDetLocState, fanDetLocLatLong, fanDetLocTZ, fanDetLocDST)
VALUES(00210, 'Portsmouth', 'NH', point(43.005895,-71.013202), -5,1)

त्रुटि छवि: img5

+0

क्या आप तालिका की परिभाषा ('CREATE' कथन) जोड़ सकते हैं? किस स्तंभ का प्रकार 'GEOMETRY' है? –

+0

fanDetLocLat, fanDetLocLong – CodeTalk

+0

यह दो कॉलम है। क्या आपके पास टाइपमेट या पॉइंट प्रकार का कॉलम है? –

उत्तर

17

आप POINT() का उपयोग प्रकार GEOMETRY या POINT के एक स्तंभ में स्टोर करने के लिए कर सकते हैं:

POINT(43.005895, -71.013202) 

हैं ज्यामिति कॉलम का नाम geom है, आप इसका उपयोग कर सकते हैं:

INSERT INTO table 
    (..., geom, ...) 
    VALUES 
    (..., POINT(43.005895, -71.013202), ...) 

आप डाटा संग्रहित, आप X() and Y() कार्यों का उपयोग कर सकते हैं दिखाने के लिए करना चाहते हैं:

SELECT X(geom) AS x, Y(geom) AS y 
FROM table 
+0

यह सहायक है, मुझे लगता है कि मैंने अभी बिंदु नहीं जोड़ा है()। पहले कभी ज्यामिति मान का उपयोग नहीं किया है। धन्यवाद ypercube! – CodeTalk

+0

जब मैं उपयोग करता हूं: तालिका में प्रवेश करें (fanDetLocZip, fanDetLocCity, fanDetLocState, fanDetLocLatLong, fanDetLocTZ, fanDetLocDST) VALUES (00210, 'पोर्ट्समाउथ', 'एनएच', बिंदु (43.005895, -71.013202), - 5,1) यह मान इनपुट करता है अजीब। ऊपर स्क्रीनशॉट देखें। – CodeTalk

+0

@ user975947: ऊपर मेरा संपादन देखें। –

2

क्यों आप अपने अक्षांश/देशांतर के लिए बजाय एक फ्लोट प्रकार का उपयोग न?

Float (10,6) 
+3

फ्लोट अक्षांश और अक्षांश को स्टोर करने के लिए अच्छा नहीं है। अक्षांश/अक्षांश को स्टोर करने के लिए डबल सबसे अच्छा डेटाटाइप है। [पूर्ण चर्चा पढ़ें] (http://stackoverflow.com/questions/20657172/float-and-double-datatype-is-good-to-store-lattitude-and-longtitude) – ArunRaj