WordPress GPXプラグイン wp-gpx-maps 温度、心拍、ケイデンス表示

2019年11月23日

Garmin GPSMAPの軌跡管理で軌跡保存したGPXデータを直接WordPress GPXプラグイン wp-gpx-maps に取り込んたところ、温度、心拍数が認識できなかった。
[sgpx gpx="/wp-content/uploads/gpx/gpsmap_test那須岳.gpx"]

しかし、Garmin ConnectでGarminサーバーにGPXファイルをアップし、カレンダーのところから対象となるMAPの「詳細を確認」で表示したページから、歯車のアイコンを選択して、そこからGPXエクスポートでダウンロードしたGPXデータは温度、心拍数が認識できた。
[sgpx gpx="/wp-content/uploads/gpx/activity_test那須岳.gpx"]

この2つのGPXデータの差は、「gpxtpx」というネームスペースか、

<trkpt lat="37.1284990758″ lon="139.9756607506″>
<ele>1478.88</ele>
<time>2019-11-02T07:00:22Z</time>
<extensions>
<gpxtpx:TrackPointExtension>
<gpxtpx:atemp>6.5</gpxtpx:atemp>
<gpxtpx:hr>118</gpxtpx:hr>
</gpxtpx:TrackPointExtension>
</extensions>
</trkpt>

「ns3」というネームスペースを使用しているかの違いだった。

<trkpt lat="37.1284990758″ lon="139.9756607506″>
<ele>1478.88</ele>
<time>2019-11-02T07:00:22Z</time>
<extensions>
<ns3:TrackPointExtension>
<ns3:atemp>6.5</gpxtpx:atemp>
<ns3:hr>118</gpxtpx:hr>
</ns3:TrackPointExtension>
</extensions>
</trkpt>

GPXプラグイン wp-gpx-maps のwp-gpx-maps_utils.phpでは、

if ( isset( $arr['ns3:TrackPointExtension’] ) ) {
$tpe      = $arr['ns3:TrackPointExtension’];
$hr       = @$tpe[“ns3:hr"];
$atemp = @$tpe[“ns3:atemp"];
$cad     = @$tpe[“ns3:cad"];
} elseif (

のように、hr:心拍、atemp:温度が「ns3」でチェックしている。wp-gpx-maps_utils.php を書き換えて「ns3」から「gpxtpx」に変更するかGPSMAPのGPXデータをns3に一括置換すればGarminのGPSMAPのGPXデータはそのまま認識するかもしれないが、Garmin ConnectでGarminサーバーからエクスポートしたGPXデータを使ってGPXプラグイン wp-gpx-mapsに取り込んだ方が良いと思う。

ちなみに、情報表示の日本語化は、"wp-gpx-maps.php"で文字を置き換えた。