ホームページ作成支援ツール

データ
  • 2013.05.06(月)
アーカイブ

「ひろあき氏」の「GPX Viewer」をそっくり真似したモノで作っていた GPS 軌跡の大改修がようやく終わった。
「ひろあき氏」の「GPX Viewer」は、生のGPXデータをそのまま読み込んで表示する形式で作られていたが、過去の山でGPXデータが無くなっているモノがあったり、せっかく過去に苦労してエンコードするように作り上げたモノを使わないのも勿体ないような気分になってきたので、過去にエンコードしたモノはそのまま使えるようにした。

71歳を過ぎた頭は、直ぐに忘れてしまうので、忘備禄として書き残しておこう。
前回、GPXデータを64進数のデータに変換するのはビット演算を含む、非常に面倒な方法で変換した。
http://www.gps-walk.com/niki/110906/index.html

しかし、今回のVer.3 へのバージョンアップで、エンコードするのは、たった1行で可能になった。

	var encodedPath = google.maps.geometry.encoding.encodePath(buff);

たったこれだけ!!
あっけないほど簡単だ。
そして、それをデコードして、緯度経度の配列に戻すのも

	var points = google.maps.geometry.encoding.decodePath(encodedPath);

こんなに簡単!!

ホームページ作成支援のコードも下記のように非常に簡単になった。

function createEncodedPolyline(){
    var buff = [];
    var encodedPath;
    //GPXのデータを取得する>
    $.get("new.gpx", function(xml){
        var gpx = $("trkpt", xml);
        //受け取ったデータから緯度経度を取り出し、配列に格納
        var trkpt, lat, lng, ele, time, i, latLng;
        for (i = 0; i < gpx.length; i++) {
            //<trkpt lat="yyy" lng="xxx">からyyy,xxxを取り出す
            lat = $(gpx[i]).attr("lat");
            lng = $(gpx[i]).attr("lon");
            //latLngを作成
            buff.push( new google.maps.LatLng(lat, lng) );
        }
        encodedPath = google.maps.geometry.encoding.encodePath(buff);
    });
    gpolylinepoints = encodedPath.replace(/\\/g, "\\\\");
}

今回は、GPXデータを読んで来るのに、JQuery を使っている。そのためコードが非常に簡単になった。
1ポイントのデータは ‹trkpt› ‹/trkpt› 間にあるので、これを読んで「buff」にプッシュしている。
それを上記のたった1行でエンコードできるのだから、Ver.3 は非常に素晴らしい!!!
最後の正規表現による '¥' を '¥¥' に置換するは前回も必要だったが、今回もこれを加えないとうまく行かなかったのは、同じだった。

現在位置: ホームなんでも日記メニュー > このページ