• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1431
  • Last Modified:

php mysql lat long query

I would like to search for records within a given distance like 10km.  i have a table called users with username, userid, lat and lon as fields.

I would like to return all the users within 10km from say user number 15 and then order the records from nearest to farthest.  I would like to do this in the most economic way possible so I believe that means doing all the calculations within the mysql query.

does anyone know how to accomplish this this?
  • 2
1 Solution
Here is a PHP method to calculate distance based on latitude and longitude. There may be a MySQL way to do this, but I'm not sure:

Takes two sets of coordinates in decimal longitude and latitude format and returns the distance in kilometers.

$lat1 = 46.2341938036161;
$lon1 = -63.124778021257015;

$lat2 = 46.4141938036161;
$lon2 = -63.118571124705284;

$distance = (3958*3.1415926*sqrt(($lat2-$lat1)*($lat2-$lat1) + cos($lat2/57.29578)*cos($lat1/57.29578)*($lon2-$lon1)*($lon2-$lon1))/180);


jimfrithAuthor Commented:
Thats not what I'm looking for.  already know the distance in kilometers I need an mysql query to return all users within that distance.
jimfrithAuthor Commented:
I found a tutorial here that solved my problem:

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now