「GNS」メッセージは、例えば
2:我々は
4054.34347、N =緯度
02916.99092、E、=経度
緯度を抽出することができ、あなたのメッセージからhere
1桁目(pa緯度(あなたのサンプルでは40)の度数は0です。 残り(54.34347)は分です。 'N'は北半球( 'S'は南部)です。の
最初の数字(必要であれば0で埋め):doubleとしてfloatへ
変換が
function TGpsMsg.LatStrToDouble(Lat: string; NS: char): double;
begin
result := StrToFloat(LeftStr(Lat, 2));
result := result + StrToFloat(MidStr(Lat, 3, 8))/60;
if (NS = 'S') or (NS = 's') then
result := -result;
end;
あなたのサンプルは40.9057245 N
経度あるだろう経度(029)は度です。 残り(16.99092)は分です。 'E'は0子午線(グリニッジ)の東です( 'W'は西になります)。
function TGpsMsg.LngStrToDouble(Lng: string; EW: char): double;
begin
result := StrToFloat(LeftStr(Lng, 3));
result := result + StrToFloat(MidStr(Lng, 4, 8))/60;
if (EW = 'W') or (EW = 'w') then
result := -result;
end;
あなたのサンプルでは、私はあなたがより正確に問題を定義する必要があると思う29.283182 E
です。 –
gpsデバイス(comport)からWGS84フォーマットのcoordを受け取ったが、long longの投影をする必要があるので、私はこのcoordを受け取りました: $ GPGNS、080219.00,4054.34347、N、02916.99092、E、AN、11,0.89 、134.1,37.7 ,, * 7B 地図Lat:40.9057 地図Long:29.2831 –
この形式はNMEAと呼ばれ、かなりよく文書化されています。ここにhttp://www.gpsinformation.org/dale/nmea.htm – dummzeuch