क्या MySQL LAT LNG या LNG LAT के रूप में पॉइंट डेटाैटिप्स को स्टोर करता है?


9

मुझे देशांतर के रूप में अक्षांश के बाद स्थान प्रारूप देखने की आदत है, लेकिन पुस्तकालयों का उपयोग करते हुए, मेरा मानना ​​है कि मैं MySQL को इसे POINT(LNG LAT)रिवर्स ऑर्डर के रूप में संग्रहीत करने के लिए समझता हूं । क्या मेरा पुस्तकालय गलत है, या यह वास्तविक प्रारूप है? मैं इस विवरण को MySQL प्रलेखन में नहीं ढूंढ सकता।


आप शायद इसे एक बार पढ़ सकते हैं: stackoverflow.com/questions/159255/…
codedawg82

जवाबों:


14

कंस्ट्रक्टर सिंटेक्स

अवलोकन किया जा रहा स्थानिक समारोह संदर्भ, आप देखेंगे

Point(x, y)
Constructs a Point using its coordinates

यह पूरी तरह से सही नहीं है। सभी जीआईएस कार्यान्वयन (x,y)अनुमानित निर्देशांक के लिए करना चाहिए जो है (long,lat)। लेकिन, जियोडिडिक कॉर्डिनेट सिस्टम पर कुछ असहमति है कि क्या करना है। MySQL (और SQL सर्वर) करते हैं, (lat,long)लेकिन PostGIS (long,lat)हर जगह बनाए रखता है।

इस में को छुआ है कल्पना एसक्यूएल विकल्प: भाग 2 - भौगोलिक जानकारी के लिए OpenGIS® कार्यान्वयन स्टैंडर्ड - सरल सुविधा का उपयोग कर सकते ,

  • जियोलाइटिक सीआरएस के लिए एक दीर्घवृत्तीय 2-डी समन्वय प्रणाली है, दो आयामी दीर्घवृत्तीय समन्वय प्रणाली कुल्हाड़ियों के लिए भू-मध्य अक्षांश, सकारात्मक उत्तर की ओर, और भूगर्भिक देशांतर, सकारात्मक पूर्व की ओर हैं। एक्सिस दिशा क्रमशः 'उत्तर' और 'पूर्व' होगी।
  • एक त्रि-आयामी दीर्घवृत्तीय समन्‍वय प्रणाली वाले जियोडेटिक CRS के लिए, WKT स्ट्रिंग में क्षैतिज अक्षों का नाम और संक्षिप्त नाम (ii) में आवश्यकताओं का पालन करेगा। ऊर्ध्वाधर अक्ष नाम 'दीर्घवृत्ताभ ऊंचाई' होगा; ऊर्ध्वाधर अक्ष संक्षिप्त नाम 'एच' होगा और क्षैतिज अक्षों के लिए संक्षिप्तीकरण शामिल होने पर इसे शामिल किया जाना चाहिए।

ध्यान दें उपरोक्त शब्द भौगोलिक जानकारी में पाए जाते हैं - समन्वय संदर्भ प्रणालियों का प्रसिद्ध पाठ प्रतिनिधित्व

यहां तक कि 1.1 कल्पना के रूप में वापस,

एक स्थानिक संदर्भ प्रणाली, जिसे एक समन्वय प्रणाली के रूप में भी जाना जाता है, एक भौगोलिक (अक्षांश-देशांतर) , एक अनुमानित (X, Y), या एक भू-स्थिर (X, Y, Z) समन्वय प्रणाली है।

इसने कहा, ऐसा लगता है कि PostGIS और Oracle और कई तीसरे पक्ष के पुस्तकालय (x,y,[z])सभी प्रकार के बिंदुओं के लिए बनाए हुए हैं । यह डब्ल्यूकेटी के लिए कल्पना का उल्लंघन है, लेकिन एक बहुत ही सामान्य सम्मेलन है। उदाहरण के लिए, GeoJSON भी ऐसा करता है,

बिंदु निर्देशांक x, y क्रम में हैं (पूर्वव्यापीकरण, अनुमानित निर्देशांक, देशांतर और ज्यामितीय समन्वय के लिए अक्षांश के लिए कुछ भी नहीं)

और, (lat, long) ऑर्डर स्पष्ट रूप से SRSID 4326 के लिए EPSG द्वारा परिभाषित किया गया है ।

एक 2 डी या 3 डी समन्वय प्रणाली, जिसमें स्थिति भौगोलिक भौगोलिक अक्षांश, भौगोलिक देशांतर और (तीन आयामी मामले में) दीर्घवृत्ताभ ऊंचाई द्वारा निर्दिष्ट है, जिसका उपयोग भौगोलिक सीआरएस में किया जाता है।

आप इस विषय पर पॉल रैम्से (कैप्टन पोस्टजीआईएस) ब्लॉग की जाँच करने पर विचार कर सकते हैं , जिसका शीर्षक है, "चलो पूरे कॉलिंग कॉल करें"

Nicities

विशेष नोट के रूप में, MySQL मिक्स में दो नए फंक्शन लाता है,

इन कार्यों से एक तरफ खड़े हो ST_X(), और ST_Y()और की आवश्यकता होती है एक भौगोलिक एसआरएस या वे एक अपवाद और त्रुटि फेंक देते हैं।

भंडारण

से डॉक्स

आंतरिक रूप से, MySQL एक ज्यामिति मूल्यों को एक प्रारूप में संग्रहीत करता है जो WKT या WKB प्रारूप के समान नहीं है। (आंतरिक प्रारूप WKB की तरह है लेकिन SRID को इंगित करने के लिए प्रारंभिक 4 बाइट्स के साथ।)

भंडारण यहाँ परिभाषित किया गया है

Table 11.1 WKB Components Example

Component       Size    Value
Byte order      1 byte  01
WKB type        4 bytes 01000000
X coordinate    8 bytes 000000000000F03F
Y coordinate    8 bytes 000000000000F0BF

0

आदेश की जांच करने का एक आसान तरीका सीमा अक्षांश से बाहर निकल रहा है:

SELECT ST_Longitude(ST_SRID(POINT(45, 160), 4326));

ERROR 3732 (22S03) देता है: फ़ंक्शन st_srid के एक पैरामीटर में अक्षांश 160.000000 के साथ एक ज्यामिति होती है, जो सीमा से बाहर है। यह [-90.000000, 90.000000] के भीतर होना चाहिए;

इस बात से सावधान रहें कि आपके द्वारा उपयोग किए जाने वाले कार्यों के आधार पर ऑर्डर बदल सकता है:

SELECT ST_Longitude(ST_SRID(POINT(45, 90), 4326));
SELECT ST_Longitude(ST_GeomFromText('POINT(45 90)', 4326));
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.