我正在设计一个招聘数据库,我需要它来执行几项任务,这些任务都涉及整合距离计算的方法:
1)计算候选人与客户之间的距离?
2)计算在给定日期可工作的候选人的半径范围内的客户?
3)计算在客户半径范围内具有正确职位空缺资格的候选人的数量.
如您所见,我需要通过2种主要方式来计算距离:1)半径2)乌鸦飞翔时,我希望精确的距离,但第一个会做到.
我知道我可以集成Google地图或其他基于Web的地图,但是我希望该系统独立运行,因此无需互联网即可正常运行.
系统将具有HTML5前端,后端位于Mysql和PHP中.
谢谢比亚焦
解决方法:
两点之间的距离可以使用以下公式计算:
6371*acos(cos(LatitudeA)*cos(LatitudeB)*cos(longitudeB-longitudeA)+sin(LatitudeA)*sin(latitudeB))
当然,这是以“公里”为单位的近似值.
Wich可以通过以下方式翻译为php:
$longA = 2.3458*(M_PI/180); // M_PI is a php constant
$latA = 48.8608*(M_PI/180);
$longB = 5.0356*(M_PI/180);
$latB = 47.3225*(M_PI/180);
$subBA = bcsub ($longB, $longA, 20);
$cosLatA = cos($latA);
$cosLatB = cos($latB);
$sinLatA = sin($latA);
$sinLatB = sin($latB);
$distance = 6371*acos($cosLatA*$cosLatB*cos($subBA)+$sinLatA*$sinLatB);
echo $distance ;
这样,您可以计算两个点(人)之间的距离,当然可以确定一个点是否在另一个半径范围内.