2014年8月7日木曜日

Vikingはまずいかもしれない

 VikingでGPSデータを管理するのはまずいかもしれない。(version 1.5.1)。

 たとえば、下記のようなログ。  iPhone->EveryTrail経由で落としたGPXファイルは次のような感じだ(抜粋)。

  <trk>
    <number>1</number>
    <trkseg>
      <trkpt lat="35.459207230" lon="138.577041720">
        <ele>909.000000</ele>
        <time>2014-07-29T06:41:41.168Z</time>
      </trkpt>
      <trkpt lat="35.459194530" lon="138.577280940">
        <ele>909.000000</ele>
        <time>2014-07-29T06:41:42.894Z</time>
      </trkpt>
      <trkpt lat="35.459172990" lon="138.577525940">
        <ele>908.000000</ele>
        <time>2014-07-29T06:41:44.899Z</time>
      </trkpt>
    </trkseg>
  </trk>

 それをVikingにインポートしてエクスポートすると下記のようになる。

<trk>
  <name>VIKING_TR001</name>
  <trkseg>
  <trkpt lat="35.459207229999997" lon="138.57704172000001">
    <ele>909</ele>
    <time>2014-07-29T06:41:41Z</time>
    <speed>10.181978000000001</speed>
  </trkpt>
  <trkpt lat="35.459194529999998" lon="138.57728094000001">
    <ele>909</ele>
    <time>2014-07-29T06:41:42Z</time>
    <speed>21.736802999999998</speed>
  </trkpt>
  <trkpt lat="35.459172989999999" lon="138.57752593999999">
    <ele>908</ele>
    <time>2014-07-29T06:41:44Z</time>
    <speed>11.171953</speed>
  </trkpt>
  </trkseg>
</trk>

 問題はtimeだ。ミリ秒単位が消えてしまっている。保存されたVikingのファイルを見ると、timeは「unixtime」で格納されていた(unixtimeにミリ秒の位はない)。
 これはあかん!
 というわけで地図へのマッピング以外の部分は使わないことにした。

※バグなのか、仕様なのかは不明。英語はわからん。

 ちなみにスピードがおかしいのはやはり秒のみで計算しているからのようだ。ミリ秒まで計算するとそれなりの値になった。