为了账号安全,请及时绑定邮箱和手机立即绑定

用于下载和处理 GTFS zip 文件的 Javascript

用于下载和处理 GTFS zip 文件的 Javascript

一只名叫tom的猫 2022-12-22 13:08:07
我尝试下载、解压缩和处理GTFSzip 格式的文件。下载和解压缩工作正常,但尝试将 txt 文件gtfs-utils与gtfsFunc(). 输出未定义。延迟只是为了测试目的而硬编码。const dl = new DownloaderHelper('http://www.bkk.hu/gtfs/budapest_gtfs.zip', __dirname);dl.on('end', () => console.log('Download Completed'))dl.start();myVar = setTimeout(zipFunc, 30000);function zipFunc() {    console.log('Unzipping started...');    var zip = new AdmZip("./budapest_gtfs.zip");    var zipEntries = zip.getEntries();    zip.extractAllTo("./gtfsdata/", true);  }myVar = setTimeout(gtfsFunc, 40000);function gtfsFunc() {    console.log('Processing started...');    const readFile = name => readCsv('./gtfsdata/' + name + '.txt')    const filter = t => t.route_id === 'M4'    readStops(readFile, filter)    .then((stops) => {        const someStopId = Object.keys(stops)[0]        const someStop = stops[someStopId]        console.log(someStop)    })}
查看完整描述

2 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

您正在尝试使用 route_id 字段过滤停止文件,而此 txt 没有此字段。


停止的字段有:


stop_id, stop_name, stop_lat, stop_lon, stop_code, location_type, parent_station, wheelchair_boarding, stop_direction

也许您需要的是读取 Trips.txt 文件而不是 Stops.txt,因为该文件有route_id字段。您可以使用 readTrips 函数完成此操作:


const readTrips = require("gtfs-utils/read-trips");

你的 gtfsFunc 将是:


function gtfsFunc() {


  console.log("Processing started...");

  const readFile = (name) => {

    return readCsv("./gtfsdata/" + name + ".txt").on("error", console.error);

  };


  //I used 5200 because your Trips.txt contains routes id with this value

  const filterTrips = (t) => t.route_id === "5200";


  readTrips(readFile, filterTrips).then((stops) => {

    console.log("filtered stops", stops);

    const someStopId = Object.keys(stops)[0];

    const someStop = stops[someStopId];

    console.log("someStop", someStop);

  });

}

或者如果你真正想要的是阅读 Stops.txt,你只需要改变你的过滤器


const filter = t => t.route_id === 'M4'

使用一些有效的字段,例如:


const filter = t => t.stop_name=== 'M4'


查看完整回答
反对 回复 2022-12-22
?
繁花如伊

TA贡献2012条经验 获得超12个赞

停止数据没有route_id字段。

您应该尝试其他数据,例如TripRoute

您可以查看数据文件的第一行,看看它们有哪些字段。

GTFS数据结构在这里


查看完整回答
反对 回复 2022-12-22
  • 2 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信