GPXファイルから緯度・経度を取得(PHP版) 09Feb2008 >> TOP

GARMINeTrex Vista Cx で記録された gpx(xml)ファイルから緯度・経度・高度・時間等の要素を取り出すプログラム(PHP版)を,友人の力を借りて何とか作成。

<?php

$gpxfile = "20071207.gpx";//GPXファイルを指定

GPX($gpxfile);//計算結果出力



//--- 以下計算 ---
//目的に応じて適当に変更してください

function GPX($fname){

$data=implode("",file($fname));
$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($xml_parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($xml_parser, $data, $values, $tags);
xml_parser_free($xml_parser);

$m=count($tags['trkseg'])/2;

for($j=0;$j<$m;$j++) {
echo "[".$j."] ---";
echo $values[$tags['name'][$j]]['value'];//ログ名
echo "---\n";

$n=count($tags['trkpt'])/2;

for($i=0;$i<$n;$i++) {
echo "($i) ";
echo $values[$tags['trkpt'][$i*2]]['attributes']['lat'];//緯度
echo ' ';
echo $values[$tags['trkpt'][$i*2]]['attributes']['lon'];//経度
echo ' ';
echo $values[$tags['ele'][$i]]['value'];//高度
echo ' ';
echo $values[$tags['time'][$i]]['value'];//時間
echo "\n";
}
echo "\n";
}
return;
}
?>
  • ソース:read_gpxfile.zip(Free)
  • サンプル:read_gpxfile.php
    (HTMLで表示後,ソース表示で確認してください)
    ここでは,時間は表示させていません。