緯度経度を使った、二点間の距離を出す
unityでGPSを利用したアプリを作成しています。距離の計算式を書き、実行したところ実際の距離と全くかけ離れたものになってしまいました。これを解決するべく、皆様の知恵を貸していただきたいと思っています。
###発生している問題・エラーメッセージ
問題は、距離が正確に算出されないことです。
###該当のソースコード
Unity C#
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class test: MonoBehaviour
{
public float r ;
public float z;
public static float swip_num = 0; public static float swip_num2 = 0; public static float swip_num3 = 0;
}
private IEnumerator GetStreetViewImage(float latitude, float longitude )
{
Vector2 pos2 = new Vector2(36.484479f, 136.571314f);
Vector2 pos3 = new Vector2(36.486926f, 136.570231f);
float r= 6378.137f;
float z = Mathf.Cos((pos2.x + pos3.x) / 2);
swip_num3 = Mathf.Sqrt(Mathf.Pow((pos2.y-pos3.y)z,2)+Mathf.Pow(pos2.x-pos3.x,2));
swip_num = swip_num2 Mathf.Deg2Rad*r;
swip_num = Mathf.Acos(swip_num3);
}
###試したこと
複数の計算式を実験してみましたが、どれも計算が合わない結果になってしまいした。
参考にした計算式
出発地点の緯度をδ1、経度をλ1、到着地点の緯度をδ2経度をλ2
δ0は二地点の緯度を足して2で割った平均です
1)cos d = (sinδ1)×(sinδ2) + (cosδ1)×(cosδ2)×cos(λ1-λ2)
2)d=√{(λ1-λ2)×(cosδ0)}^2 + (δ1-δ2)^2}
###補足情報(言語/FW/ツール等のバージョンなど)
言語はC#を使っております。unityのバージョンは5.3.5です。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/15 04:58 編集
2016/09/15 04:47
2016/09/15 05:26
2016/09/15 08:34 編集
2016/09/15 09:06