पहली बार मैं SQL Server 2008 R2 की स्थानिक सुविधाओं का उपयोग करने का प्रयास कर रहा हूं, इसलिए कृपया मेरे साथ बेकार करें।एसक्यूएल सर्वर 2008 आर 2 भूगोल दूरी?
मैं निम्नलिखित कॉलम के साथ एक टेबल बनाया है:
Text:varchar(255)
Location:geography
वे नीदरलैंड से कुछ ही शहर के होते हैं के रूप में डेटा (Google नक्शे से निर्देशांक मिल गया):
Rotterdam - POINT (51.925637 4.493408 4326)
Utrecht - POINT (52.055868 5.103149 4326)
Nijmegen - POINT (51.801822 5.828247 4326)
Breda - POINT (51.542919 4.77356 4326)
मैं चाहता हूँ करने के लिए रॉटरडैम से डीबी में सभी शहर के बीच की दूरी को जानें, इसलिए मैं यह क्वेरी करता हूं:
Select
Text, Location,
Location.STDistance(geography::Point(51.925638, 4.493408, 4326)) as Distance
from Messages
लेकिन परिणामस्वरूप मुझे हर शहर के लिए 6800000 के करीब दूरी मिलती है।
इसका कारण क्या हो सकता है?
एकमात्र कारण यह है कि मैं सोच सकता हूं कि मैं गलत एसआरआईडी का उपयोग कर रहा हूं, लेकिन मुझे पता नहीं लगा कि मुझे किसके लिए उपयोग करना चाहिए।
धन्यवाद!
संपादित करें:
बस के लिए यह की बिल्ली मैं संख्या के साथ खेल चला गया और मैं कुछ अजीब परिणाम मिला:
Distance from Rotterdam to Rotterdam: 6828459.57 (A) (weird but true)
Distance from Rotterdam to Breda: 6779956.10 (B)
Distance from Rotterdam to Nijmegen: 6695336.38 (C)
अब यहाँ है जहाँ यह दिलचस्प हो गया है:
(A) - (B) = 48504 m = 48 km
(A) - (C) = 133123 m = 133 km
ये मूल्य मोटे तौर पर इन शहर के बीच की दूरी हैं।
मुझे अभी भी यकीन नहीं है कि मैंने क्या किया है, लेकिन आपका कोड काम करता है इसलिए मैं उससे जाऊंगा। धन्यवाद =) – SaphuA
@ सफुआ आपका स्वागत है। एक sidenote एक शून्य सूचकांक डेटाटाइप कॉलम पर एक स्थानिक सूचकांक का उपयोग करने के बहुत सावधान रहना चाहिए। कुछ गंभीर प्रदर्शन समस्याएं हैं, इसलिए यदि आप अपनी स्कीमा को फिर से तैयार करना चाहते हैं तो भी उस भौगोलिक कॉलम को गैर-शून्य कर दें। – Tomas
टॉमस की निरर्थक भूगोल प्रकारों पर एक स्थानिक इंडेक्स के साथ प्रदर्शन समस्याओं के बारे में टिप्पणी बहुत अच्छी है। यहां अधिक जानकारी: http://stackoverflow.com/questions/4954875/sql-server-2008-performance-on-nullable-geography-column-with-spatial-index – TTT