Skip to content

Instantly share code, notes, and snippets.

@garyblankenship
Last active August 29, 2015 14:00
Show Gist options
  • Save garyblankenship/11229162 to your computer and use it in GitHub Desktop.
Save garyblankenship/11229162 to your computer and use it in GitHub Desktop.
$results = DB::select("
SELECT zipcode, city, state, lat, lng, distance_in_mi
FROM (
SELECT zipcode, city, state, lat, lng, r,
(
3963.17
* ACOS( COS( RADIANS( latpoint ) )
* COS( RADIANS( lat ) )
* COS( RADIANS( longpoint ) - RADIANS( lng ) )
+ SIN( RADIANS( latpoint ) )
* SIN( RADIANS( lat ) ) ) )
AS distance_in_mi
FROM zipcode
JOIN (
SELECT :current_lat AS latpoint, :current_lng AS longpoint, 10 AS r
) AS p
WHERE lat BETWEEN latpoint - ( r /69 ) AND latpoint + ( r /69 )
AND lng BETWEEN longpoint - ( r / ( 69 * COS( RADIANS( latpoint ) ) ) ) AND longpoint + ( r / ( 69 * COS( RADIANS( latpoint ) ) ) )
) d
WHERE distance_in_mi <= r
ORDER BY distance_in_mi",
array(
'current_lat' => $current_lat,
'current_lng' => $current_lng
)
);
dd( $results );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment