擅长:python、mysql、java
<p>回答可能有点晚,但在测试了其他答案之后,它们似乎无法正常工作。这是我们系统使用的PHP代码。全方位工作。</p>
<p>PHP代码:</p>
<blockquote>
<p>lat1 = latitude of start point in degrees</p>
<p>long1 = longitude of start point in degrees</p>
<p>d = distance in KM</p>
<p>angle = bearing in degrees</p>
</blockquote>
<pre><code>function get_gps_distance($lat1,$long1,$d,$angle)
{
# Earth Radious in KM
$R = 6378.14;
# Degree to Radian
$latitude1 = $lat1 * (M_PI/180);
$longitude1 = $long1 * (M_PI/180);
$brng = $angle * (M_PI/180);
$latitude2 = asin(sin($latitude1)*cos($d/$R) + cos($latitude1)*sin($d/$R)*cos($brng));
$longitude2 = $longitude1 + atan2(sin($brng)*sin($d/$R)*cos($latitude1),cos($d/$R)-sin($latitude1)*sin($latitude2));
# back to degrees
$latitude2 = $latitude2 * (180/M_PI);
$longitude2 = $longitude2 * (180/M_PI);
# 6 decimal for Leaflet and other system compatibility
$lat2 = round ($latitude2,6);
$long2 = round ($longitude2,6);
// Push in array and get back
$tab[0] = $lat2;
$tab[1] = $long2;
return $tab;
}
</code></pre>