فاصله بین دو مختصات طول و عرض در SQL Server را محاسبه کنید
یک تابع SQL ایجاد کنید که فاصله مختصات طول و عرض جغرافیایی را در مایل یا کیلومتر محاسبه کند
متن نوشته
محاسبه فاصله بین دو مکان می تواند بسیار مشکل باشد ، مقالات خوبی وجود دارد ، با این حال این صفحه فقط به کد می رود.
برای کسب اطلاعات بیشتر در مورد نحوه محاسبه فاصله آن بر روی یک کره ، به Haversine Formula در ویکی پدیا نگاهی بیندازید ، کمی پیچیده است ، بنابراین ما نمی خواهیم محتوای آن را کپی کنیم.
ما برخی از این کدها را بصورت آنلاین پیدا کردیم و آن را با قابلیت درخواست مایل یا کیلومتر با یک عملکرد SQL تطبیق داده ایم.
این فقط "وقتی کلاغ پرواز می کند" محاسبه می شود ، با این حال به عنوان بخشی از برنامه ای که می خواهیم روی یک iPhone ساخته باشیم و فواصل آن مشخص است ، آزمایش شد.
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