2017-09-04 7 views
1

私は、あなたの現在の見出しを読むべきであるウェブサイトを作成したい。見出しjavascript geolocation

+0

こんにちは、ジョナス!私はあなたの答えを編集してスクリーンショットを直接表示し、一般的に少し控えめにしました。あなたの質問の意味を間違って変更していないことを確認してください。あなたの修正が必要な場合は、私の編集内容を元に戻したり、質問をさらに編集してください。ありがとう、そしてStack Overflowへようこそ! –

答えて

1

あなたはすでにuse the JavaScript geolocation APIの方法を知っていて、JavaScriptで回転矢印をレンダリングする方法を考えています。矢印を回転させる角度を計算するだけで助けが必要です。この角度は、あなたの位置からの目標点の角度とデバイスの方位の差の単純な差です。

var dx = Math.sin(lon2 - lon1); 
var dy = Math.cos(lat1)*Math.tan(lat2) - Math.sin(lat1)*Math.cos(lon2 - lon1); 
var azimuth = Math.atan2(dx, dy); // north = 0, increases clockwise 
lat1lon1は我々の現在の緯度と経度と lat2あり

lon2:約あなたが(上記のリンクされたWikipediaの記事から適合)以下の式を使用することができ、ターゲットの方位を算出する

ターゲットの緯度および経度であり、azimuthは、現在の位置から見たターゲットの方位角であり、正に北から時計回りに測定されます。

(この公式は、地球が球であることを前提としているため近似しているに過ぎませんが、この誤差は他の誤差源と比較して無視して差し支えありません。これさえマイナーなエラーは、しかし、あなたはまた、given in the Wikipedia articleをより複雑な式を使用してWGS84回転楕円体の方位角を計算することができます。)

注それは何JavaScript trigonometric functionsですので、必要以上の式へのすべての入力は、radiansに与えられるべきこと期待する。通常、緯度と経度は度で指定されているため、最初にそれらをrad355に変換する必要があります。上記の計算の結果もまたラジアンで表されます。数値に変換するには、azimuthの値に180/Math.PIを掛ける必要があります。

ターゲットの方位角がわかったら、the compass heading of the deviceから後者を減算するだけで、矢印を回転させてターゲットをポイントする角度を取得することができます。

+0

どのように "機能していない"のですか?そして、問題を示すスニペット/フィドルを投稿できますか? –