2010-01-10 10 views
6

यह वास्तव में बेवकूफ सवाल हो सकता है, लेकिन ...एसक्यूएल सर्वर इकाइयां प्रश्न

भूगोल.स्ट्लेन्थेंस किस इकाई को वापस करता है? official MSDN page नहीं कहना है इकाइयों के बारे में कुछ भी लौट आए, और this blog entry यहाँ STLength() returns a float indicating the length of the instance in units कहते हैं। हां, यह सही है, यह कहता है कि यह इकाइयों में देता है।

किसी को क्या इकाइयों STLength रिटर्न पर कुछ प्रकाश डाला सकता है? पैर का पंजा? मीटर? इंच? मदद!

उत्तर

8

इकाइयों पूरी तरह से भूगोल/ज्यामिति डेटा की स्थानिक संदर्भ ID (SRID) पर निर्भर है इस्तेमाल किया जा रहा है। सम्मेलन से, यदि आप सभी डेटा एक ही इकाई प्रणाली में होते हैं तो आप आम तौर पर ज्यामिति प्रकारों के लिए "0" के एसआरआईडी का उपयोग करेंगे।

हालांकि, आमतौर पर भूगोल प्रकार 4326 के SRID, जो अक्षांश/देशांतर ellipsoidal पृथ्वी के संदर्भ आईडी समन्वय डब्ल्यूजीएस 84. के रूप में जाना प्रणाली जब आप बिंदु इस प्रणाली में निर्देशांक निर्दिष्ट करने पर, कोण की डिग्री में है का उपयोग करता है उत्पत्ति से कुछ दूरी की बजाय अक्षांश और देशांतर का। इस संदर्भ प्रणाली में अंक पर लंबाई और क्षेत्र की गणना (एक महान उदाहरण see Differences between Geography and Geometry here के लिए, और why this happens, see here के लिए के रूप में) ठीक उसी बिंदु पदों पर ज्यामितीय गणना से पूरी तरह से अलग परिणाम देगा।

तो यदि आपके डेटा कॉलम "0" के एसआरआईडी के साथ बनाए गए थे, तो सिस्टम को यूनिट रहित परिभाषित किया गया है और आपको इकाइयों को समझने के लिए डेटा मॉडल के बारे में कुछ मेटाडेटा की आवश्यकता होगी। अगर वे एक असली SRID साथ परिभाषित किया गया है, तो आप इस क्वेरी का उपयोग कर सकते हैं:

SELECT spatial_reference_id 
    , well_known_text 
    , unit_of_measure 
    , unit_conversion_factor 
FROM sys.spatial_reference_systems 

क्या इकाइयों SRID का प्रतिनिधित्व करता है की जाँच करने के। अधिकांश मीटर में हैं, लेकिन कुछ पैर में हैं।