我正在编写一个网站,基本上寻找在经纬度25英里半径内使用php和mysql的地方。PHP MySql和地理位置
我想知道这是如何工作?
我会传递一个拉特和长的脚本,并只拉出距纬度25英里以内,距我的位置数据库长的位置。
这样做的最好方法是什么?编号: 我发现这个代码来计算2点之间的距离。
function distance($lat1, $lon1, $lat2, $lon2, $unit) {
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);
if ($unit == "K") {
return ($miles * 1.609344);
} else if ($unit == "N") {
return ($miles * 0.8684);
} else {
return $miles;
}
}
是一个疗法办法做到这一点钙在MYSQL查找所以我只能返回,如果英里= < 25?
从哪里拉其他地点?你是否每个预定位置的纬度/长度都存储在数组或数据库中? – shamittomar 2010-08-31 05:00:24
我编辑了这个问题。我将在我的数据库中有特定位置,并会查看它们中的任何一个是否在25英里之内。如果不是,则不返回。 – shaneburgess 2010-08-31 05:02:12
一些更多的信息在这里: http://stackoverflow.com/questions/20865747/geolocation-mysql-query – miralong 2014-12-05 16:45:02