« Yahoo Maps上にルート作成(1):GPXファイルの取得 | メイン | Yahoo Maps上にルート作成(3):測地系の変換 »

2007年02月20日

Yahoo Maps上にルート作成(2):GPXファイルの解析

GPSのGPXファイル(ルート情報)を読み込んで、Yahoo! 地図情報上にルートを作成するプログラムを作成しました。その際のメモを残しておきます。

1回目の記事で、サーバ上に用意したGPXファイルのリモート読み込みが完了しました。
次は、その取得したファイルから座標情報を取り出します。

前回と同じように、Javascript上でXMLファイルを解析できるライブラリを探しました。
今回はXMLファイルの解析のみできればいいので、XML.ObjTree クラスというライブラリを利用します。

ファイルの取得とXML解析の両機能をもつライブラリである、JKL.ParseXMLもあるのですが、前回prototype.jsでファイルを取得するところまでは作ってあるので、XML.ObjTree クラスの方を利用しました。

GPXファイルの構造を見ると、先頭から gpxタグ ⇒ trkタグ ⇒ trksegタグ、とたどった先にtrkptタグがあり、その中にトラックデータが入っています。内容は、1)座標データ、2)標高、3)時刻の3つのデータがあります。

例えば↓のような感じで格納されています。元のGPXファイルはこちら ※ 時刻の部分は、GPSの仕様でグリニッジ標準時(日本時刻-9時間)が入る場合が多いらしいです。

解析方法は
var xotree = new XML.ObjTree();
var tracks = xotree.parseXML( prototype.jsで取得したGPXデータ );

とすれば、tracks.gpx.trk.trkseg.trkptの中に配列でトラックデータが格納されます。
今回は経度・緯度のみのデータを使うので、1つ目のデータの場合:
・経度:tracks.gpx.trk.trkseg.trkpt.trkpts[0]["-lat"]
・緯度:tracks.gpx.trk.trkseg.trkpt.trkpts[0]["-lon"]
を取得すればOK。

で、前回とコードを合わせると、
★サンプルはこちらのページにあります。

⇒ 次は取得した経度、緯度情報の測地系を変換する処理です。


人気blogランキング
投稿者 matoyan : 2007年02月20日 00:28

トラックバック

このエントリーのトラックバックURL:
http://www.yamareco.com/weblog/mt-tb.cgi/6

コメント

コメントしてください




保存しますか?