更新时间:2023-01-14 11:06:14
You can use the Haversine formula to search for nearest user in a database.
$stmt = $dbh->prepare("SELECT name, lat, lng, ( 3959 * acos( cos( radians(?) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(?) ) + sin( radians(?) ) * sin( radians( lat ) ) ) ) AS distance FROM mytable HAVING distance < ? ORDER BY distance LIMIT 0 , 20");
// Assign parameters
$stmt->bindParam(1,$center_lat);//lat coordinate of user
$stmt->bindParam(2,$center_lng);//lng coordinate of user
$stmt->bindParam(3,$center_lat);
$stmt->bindParam(4,$radius);//Radius in miles
A database of cities can be found at Geonames