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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s