پیدا کردن نزدیکترین مختصات

DECLARE @input_lat FLOAT = 35.7791914618759;  -- ← اینجا عوض کنید

DECLARE @input_lng FLOAT = 51.386946352431224;  -- ← اینجا عوض کنید


SELECT top 5

    title,

    gpsX,

    gpsY,

    CAST(

        6371000 * ACOS(

            COS(@input_lat * PI() / 180) * COS(gpsX * PI() / 180) *

            COS((gpsY * PI() / 180) - (@input_lng * PI() / 180)) +

            SIN(@input_lat * PI() / 180) * SIN(gpsX * PI() / 180)

        )

    AS DECIMAL(18, 2)) AS distance_meters

FROM gps  -- ← نام جدول رو عوض کنید

ORDER BY distance_meters ASC;