GPXParser.jsでファイルが読み込めない。
初めまして。
Node.jsでGPXファイルを読み込み、GPXファイルの中から最高高度や発着時間などを取得するプログラムを作成したいと考えています。
fsとGPX Parser.jsというnpmを使用して以下のようなプログラムを作成しましたが、高度や時間などが取得されません。
おそらくファイルが読み込まれていないのでは?という結論に至ったものの、何が原因で読み込まれていないのかがわかりません。
下記のコードはfsでGPXfileのの中身を丸々変数に格納し、それをGPXParser.jsで読み込み、抽出した情報を出力するプログラムです。
何かわかる方いましたらご教授いただければ幸いです。
Node.js
app.get('/test_gpx' , (req, res) => {
const file = fs.createWriteStream("file.gpx");
http.get("filepath", response => {
response.pipe(file);
const fs = require("fs");
const stream = fs.createReadStream("./file.gpx", {
encoding: "utf8",
highWaterMark: 1024
});
let count = 0;
let total = 0;
let chunk;
global.variable_chunk;
stream.on("readable", () => {
while ( ( chunk = stream.read()) !== null ) {
count++;
total += chunk.length;
global.variable_chunk = global.variable_chunk + chunk;
}
});
stream.on("end", () => {
console.log(`${count}回に分けて取得しました`);
console.log(`合計${total}byte取得しました`);
var gpx = new gpxParser();
console.log(global.variable_chunk);
gpx.parse(global.variable_chunk);
var track = gpx.tracks ;
var routes = gpx.routes;
var metadata = gpx.metadata;
var waypoints = gpx.waypoints;
console.log(metadata);
console.log(waypoints);
console.log(routes);
console.log(track);
});
});
});
});
サンプルgpxfile
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<gpx version="1.1" creator="GPS Visualizer https://www.gpsvisualizer.com/" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<trk>
<name>2021-10-03-XNA-NMQ-01</name>
<desc>2021-10-03</desc>
<trkseg>
<trkpt lat="35.8958" lon="137.2043167">
<ele>437.0</ele>
<time>2021-10-03T03:53:32Z</time>
</trkpt>
<trkpt lat="35.8957833" lon="137.2043167">
<ele>436.0</ele>
<time>2021-10-03T03:53:33Z</time>
</trkpt>
<trkpt lat="35.8957833" lon="137.2043167">
<ele>435.0</ele>
<time>2021-10-03T03:53:34Z</time>
</trkpt>
<trkpt lat="35.8957667" lon="137.2043167">
<ele>435.0</ele>
<time>2021-10-03T03:53:35Z</time>
</trkpt>
<trkpt lat="35.89575" lon="137.2043333">
<ele>435.0</ele>
<time>2021-10-03T03:53:36Z</time>
</trkpt>
<trkpt lat="35.89575" lon="137.2043333">
<ele>434.0</ele>
<time>2021-10-03T03:53:37Z</time>
</trkpt>
</trkseg>
</trk>
</gpx>
C:>node app.js
Server running at 80
success
976回に分けて取得しました
合計998714byte取得しました
{
type: 'FeatureCollection',
features: [],
properties: {
name: undefined,
desc: undefined,
time: undefined,
author: undefined,
link: undefined
}
}
{}
[]
[]
[]
0