2017-09-09 8 views
-1

私は、元のlng/latに最も近い点を見つけるために、複数のlng/lat点のセットを持っています。私は計算された距離を必要としません、空気力の私の起源に最も近いポイントを見つけるだけです。最も近いLng/Lat点を見つける(エアーディスタンス)

しかし、いずれかのセットが子午線の反対側にある場合も考慮する必要があります。

だから私は私の現在のデータを持っていると言う:

$origin = array("lat" => 52.3702157, "lng" => 4.8951679); 

$the_rest = array(
array("lat" => 52.5200066, 
     "lng" => 13.404954 
), 
array(
     "lat" => 48.856614, 
     "lng" => 2.3522219 

) 

); 

私の最初の考えは、すべてのセットを単にループにした、私の原点から緯度/経度の単純な引き算を行うと、最低の違いをyeildsている参照してください。しかし、これはメリディアンの問題を考慮していません。

答えて

0
function airDistance($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo){ 
$theta = $longitudeFrom - $longitudeTo; 
$dist = sin(deg2rad($latitudeFrom)) * sin(deg2rad($latitudeTo)) + cos(deg2rad($latitudeFrom)) * cos(deg2rad($latitudeTo)) * cos(deg2rad($theta)); 
$dist = acos($dist); 
$dist = rad2deg($dist); 
$meters = $dist * 111.18957696; 
return $meters;} 

これは、Googleマップを使用せずに座標系の距離を取得するシステムです。 GoogleマップAPIからロードされていないため、処理が高速です。

関連する問題