Daily Archives: June 19, 2012

Microsoft SQL Server Lat/Lng Search

CREATE PROCEDURE [dbo].[getItems]

@lat float,
@lng float,
@radius float

AS

    SELECT  lat, long, ( 3959 * acos( cos( radians(@lat) ) * cos( radians( lat ) ) * cos( radians( long ) – radians(@lng) ) + sin( radians(@lat) ) * sin( radians( lat ) ) ) ) AS distance
    into #t1
    FROM geocodes
    where ( 3959 * acos( cos( radians(@lat) ) * cos( radians( lat ) ) * cos( radians( long ) – radians(@lng) ) + sin( radians(@lat) ) * sin( radians( lat ) ) ) ) < @radius
    order by distance