緯度経度の2点間の直線距離を求める方法については、「C#で緯度経度の2点間の直線距離を求める - 酢ろぐ!」をごらんください。
GPSの位置情報には日本独自の「日本測地系」と「世界測地系(WGS84)」があります。
私の使っているデバイスは大抵海外メーカー製ですので、GPSで取得した位置情報も同様に「世界測地系」が採用されています。
日本のWebサービスでは何故か日本測地系を採用しているので、日本測地系の位置情報をそのままGoogle Map API等で使うと南東に約400m程ずれてしまいます。日本測地系と世界測地系の差の特徴です。
Google Mapは、世界測地系(WGS84)を採用しているので当然といえば当然なのですが。
C#で書いたサンプルコードが無かったので、このサイトの「三角関数を使わない変換式(簡単)」をベースにC#で使えるように修正させて頂きました。
**C#
|cs| ///
/// GPSの測位情報 /// public class Positions { ////// 緯度 /// public double Latitude;
/// <summary>
/// 経度
/// </summary>
public double Longitude;
public Positions(double latitude, double Longitude)
{
this.Latitude = latitude;
this.Longitude = longitude;
}
}
///
return new Positions(latWGS84, lngWGS84);
} ||<
**VB.NET
|vb| '''
''' GPSの測位情報 ''' Public Class Positions '''''' 緯度 ''' Public Latitude As Double
''' <summary>
''' 経度
''' </summary>
Public Longitude As Double
Public Sub New(latitude As Double, Longitude__1 As Double)
Me.Latitude = latitude
Me.Longitude = longitude
End Sub
End Class
'''
Return New Positions(latWGS84, lngWGS84)
End Function
||<
- 関連記事
Windows Mobile(.NET Compact Framework)を使ってアプリ開発する際に逆引きとしてお使いください。