SQL सर्वर में दो अक्षांश/देशांतर निर्देशांकों के बीच की दूरी की गणना करें
एक SQL फ़ंक्शन बनाएं जो अक्षांश/देशांतर निर्देशांक के बीच की दूरी की गणना मील या किलोमीटर में करे
संदर्भ
दो स्थानों के बीच की दूरी की गणना करना काफी मुश्किल हो सकता है, वहाँ कुछ अच्छे लेख हैं, हालाँकि यह पृष्ठ केवल कोड में जाएगा।
एक गोले पर दूरी की गणना कैसे की जाती है, इस बारे में अधिक जानकारी के लिए, विकिपीडिया पर हावेर्सिन फॉर्मूला पर एक नज़र डालें, यह थोड़ा जटिल है, इसलिए हम सामग्री को डुप्लिकेट नहीं करना चाहते हैं।
हमने इस कोड में से कुछ को ऑनलाइन पाया और इसे एक SQL फ़ंक्शन में अनुकूलित किया है, जिसमें मील या किलोमीटर पूछने की क्षमता है।
यह केवल "कौवा मक्खियों के रूप में" की गणना करता है, हालांकि इसे एक ऐप के हिस्से के रूप में परीक्षण किया गया था जिसे हमने आईफोन पर बनाया था और दूरियां हाजिर थीं।
SQL Server
CREATE FUNCTION CoordinateDistanceMiles(@Latitude1 float,@Longitude1 float,@Latitude2 float,@Longitude2 float,@Distance NVARCHAR(10))RETURNS FLOATAS BEGIN-- CONSTANTSDECLARE @EarthRadiusInMiles FLOAT=(CASE @Distance WHEN 'Miles' THEN 3959 WHEN 'Kilometers' THEN 6371 ELSE 0 END);DECLARE @PI FLOAT=PI();DECLARE @lat1Radians FLOAT=@Latitude1 * @PI / 180DECLARE @long1Radians FLOAT=@Longitude1 * @PI / 180;DECLARE @lat2Radians FLOAT=@Latitude2 * @PI / 180;DECLARE @long2Radians FLOAT=@Longitude2 * @PI / 180;RETURN Acos(Cos(@lat1Radians)*Cos(@long1Radians)*Cos(@lat2Radians)*Cos(@long2Radians)+Cos(@lat1Radians)*Sin(@long1Radians)*Cos(@lat2Radians)*Sin(@long2Radians)+Sin(@lat1Radians)*Sin(@lat2Radians)) * @EarthRadiusInMiles;END