« 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。
で、前回とコードを合わせると、
★サンプルはこちらのページにあります。
⇒ 次は取得した経度、緯度情報の測地系を変換する処理です。
関連エントリ:
・Yahoo Maps上にルート作成(1):GPXファイルの取得
・Yahoo Maps上にルート作成(2):GPXファイルの解析
・Yahoo Maps上にルート作成(3):測地系の変換
・Yahoo Maps上にルート作成(4):Yahoo!Map上に線を描く
・Yahoo Maps上にルート作成(5):線画座標と経度・緯度座標の変換
・Yahoo Maps上にルート作成(1):GPXファイルの取得
・Yahoo Maps上にルート作成(2):GPXファイルの解析
・Yahoo Maps上にルート作成(3):測地系の変換
・Yahoo Maps上にルート作成(4):Yahoo!Map上に線を描く
・Yahoo Maps上にルート作成(5):線画座標と経度・緯度座標の変換

投稿者 matoyan : 2007年02月20日 00:28
トラックバック
このエントリーのトラックバックURL:
http://www.yamareco.com/weblog/mt-tb.cgi/6