1 回答

TA贡献1827条经验 获得超8个赞
我认为是因为你以英里为单位使用该功能,在公里中你可以使用类似的东西:
public static function distance(
array $from,
array $to
) {
if (empty($from['lat']) || empty($to['lat'])) {
return $to['distance'];
}
$latitude1 = (float) $from['lat'];
$latitude2 = (float) $to['lat'];
$longitude1 = (float) $from['lng'];
$longitude2 = (float) $to['lng'];
$theta = $longitude1 - $longitude2;
$distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2)))
+ (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)))
;
$distance = acos($distance);
$distance = rad2deg($distance);
$distance = $distance * 60 * 1.1515;
$distance = (is_nan($distance)) ? 0 : $distance * 1.609344;
return $distance;
}
- 1 回答
- 0 关注
- 280 浏览
添加回答
举报