我正在尝试使用 php 和谷歌地图创建一个简单的跟踪器。现在我有跟踪器工作,但我希望它检测到某些标记的接近度。例如,如果用户在我的“房子”(一个标记)的 30m 范围内,脚本将更新它的状态,说它在“某某的房子”。我希望这可以在 PHP 中实现。最好的方法是检测每个标记的经度/纬度并在其周围创建一个简单的周边,然后检测用户的经度和纬度是否位于该周边内。周围有没有我可以使用的例子或数学方程。
问问题
7314 次
2 回答
2
使用的解决方案 -
function calc_distance($point1, $point2)
{
$radius = 3958; // Earth's radius (miles)
$deg_per_rad = 57.29578; // Number of degrees/radian (for conversion)
$distance = ($radius * pi() * sqrt(
($point1['lat'] - $point2['lat'])
* ($point1['lat'] - $point2['lat'])
+ cos($point1['lat'] / $deg_per_rad) // Convert these to
* cos($point2['lat'] / $deg_per_rad) // radians for cos()
* ($point1['long'] - $point2['long'])
* ($point1['long'] - $point2['long'])
) / 180);
return $distance; // Returned using the units used for $radius.
}
我使用了在另一篇文章中找到的 Haversine 公式。
于 2012-02-26T14:11:51.317 回答
2
Haversine 公式正是您要寻找的。有一篇关于 Google Code 的文章描述了如何将它与 MySQL 和 PHP 一起使用。
于 2012-02-26T05:37:29.607 回答