2011-09-09 4 views
0

Google Places APIを使用して地理的な場所の近くに施設のリストを取得しています。北に1km移動して地理座標を取得し、次に別のGoogle API呼び出しを行う方法を理解しようとしています。どのように地理座標から任意の方向にx距離を移動するには?

理想的には、任意の距離に移動して地理座標を取得できるようにしたいと考えています。どこから始めますか?これが不可能な場合は、私に知らせてください。

私は何も得ていません。見てください。どのように正確に私は方向を使用するのですか?どうすれば北に行くことができますか?

$lat = "40.712714"; 
$lon = "-74.005997"; 
$direction = "80"; 
$length="2000"; 

move($lon, $lat, $direction, $length); 


function move($cx,$cy,$direction,$length){ 
    $x=$cx*cos($direction*M_PI/180)+$length; 
    $y=$cy*sin($direction*M_PI/180)+$length; 
    return array($x,$y); 
    echo $x; 
    echo $y; 
    } 

EDIT 私は手動で座標の数を変更しようと、私がやりたいようです。 は、例えば、私は-73.998672

これらの座標

40.717828を取り、第三進数を変更しました。それが私の場所を北に移しました。

このWikipediaの記事 GCS Wiki Articleから引用

40.710828、-73.998672

答えて

1

だから、このリトル調査を行いましたこの機能のために修正されたコードです:しかし

function move($ylat,$xlng,$direction_degree,$length_degree){ 
    $x=$xlng+$length_degree*cos($direction_degree*M_PI/180); 
    $y=$ylat+$length_degree*sin($direction_degree*M_PI/180); 
    return array($x,$y); 
} 

var_dump(move(52.1,11.2,0,1)); //North 1 degree. 

は、あなたが希望として、あなたがそれを使用する前に修正するためのいくつかのマイナーな問題がある

  • この関数は、度単位の距離を持っているので。あなたが必要ですメートルを最初に度に変換します。それが緯度に沿って変化することに注意してください。
  • 方向は度で、0は北、90は東、180は南、270は西です。
  • 私はあなたからorginateを度量摂取し、最後にメータ変換を行うことをお勧めします。それでは、古い座標と新しい座標の距離を指定してください(例:loceo.se/doc/distance
+0

ありがとうございます。私はこれを試してみる。 $ cxが緯度であることを確認するだけですか? – vitalyp

+0

@vpets cxは経度です。 – Gustav

+0

私は何も表示されていません。私のサンプルコードを見ていただけますか? – vitalyp

0

:赤道における海面でGRS80又はWGS84楕円体で

一の 緯度秒対策30.715メートル一緯度分であります 1843メートル、緯度は110.6キロです。 の経度、子午線の円は地理的な極で満たされ、 となり、緯度が西向きになるにつれて自然に減少します( )。海面上の赤道では、1つの縦の第2の は30.92メートル、縦の分は1855メートル、そして の縦の度は111.3キロです。 30℃で 長手秒グリニッジ(51°28' 38" N)19.22メートルで、26.76メートルであり、60° でそれが15.42メートルである。