npm 包 gtfs-to-pouch 使用教程

阅读时长 7 分钟读完

在前端开发过程中,我们经常需要处理公共交通信息系统的数据。而从公共交通系统中获取数据是一件很困难的事情。好在现在有一种叫做 GTFS(General Transit Feed Specification)的标准数据格式,用于公共交通系统的信息交换。而诸如 gtfs-to-pouch 这样的 npm 包就是为了方便在前端处理 GTFS 数据而生。在本文中,我们将详细介绍如何使用 gtfs-to-pouch 包。

gtfs-to-pouch 简介

gtfs-to-pouch 是一个用于在浏览器和 Node.js 的轻量级 PouchDB 数据库之间实现 GTFS 数据转换的 npm 包。它使用 node-gtfs 作为其数据源,并将数据转换为 PouchDB 可以轻松处理的 JSON 格式。gtfs-to-pouch 还具有一些实用的功能,例如协调经纬度、设置高级导入格式等。在接下来的文章中,我们将讲述如何使用 gtfs-to-pouch。

安装 gtfs-to-pouch

安装 gtfs-to-pouch 之前,我们需要确保已经安装了 Node.js 和 npm。安装方法可以参考官方文档。

安装完成后,我们可以使用如下命令安装 gtfs-to-pouch:

使用 gtfs-to-pouch

使用 gtfs-to-pouch 并不复杂。它具有非常友好的 API。在接下来的章节中,我们将演示如何将 GTFS 数据导入 PouchDB。

初始化 gtfs-to-pouch

在使用 gtfs-to-pouch 之前,我们首先需要创建一个新的 PouchDB 数据库。

然后我们可以通过如下方式初始化 gtfs-to-pouch:

-- -------------------- ---- -------
----- ----------- - -------------------------
----- ------- - -
  ----- -------------------
--

-------------------- ----------- -- -
  ------------------- --------------
-------------- -- -
  ------------------- ------- ---------
---

在这里,options.path 指定 GTFS 文件 ZIP 存储路径。在导入过程中,gtfs-to-pouch 将自动解压文件并读取 GTFS 数据。如果导入成功,将会打印一行 “Import successful!”。

从 PouchDB 中获取 GTFS 数据

导入 GTFS 数据后,我们可以使用 PouchDB API 查询数据。例如:

这是一个以停靠点 ID 为搜索条件的简单查询示例。在本示例中,我们使用了 PouchDB 的 query 函数来查询数据,查询结果将会被输出到控制台。

高级导入格式

gtfs-to-pouch 还支持高级导入格式。我们可以定义自己的导入选项,例如:

-- -------------------- ---- -------
----- ------- - -
  ----- -------------------
  --------- -
    - ----------- ---- ----- ------- -- --
    - ----------- ---- ----- ------- -- --
  --
  ---------- -
    - ----------- ---- ------- -- -------- -- ---------- -- --------- -- ------- -- ----------- ----------- --------- ---------- --
  --
  ------- -
    - ----------- ---- --------- ---- ----------------- ----- ---------------- ----- ----- --- ----------- ----- ----- - ------------- ------------ ---------- ----------------- ---------- ----------- - --
    - ----------- ---- --------- ---- ----------------- ----- ---------------- ----- ----- --- ----------- ----- ----- - ------------- ------------ ---------- ----------------- ---------- ----------- - --
  --
  ------ -
    - --------- ---- ----------- ---- -------- ---- -------------- ----- ---- --- ------------- -- --------- --- --
    - --------- ---- ----------- ---- -------- ---- -------------- ----- ---- --- ------------- -- --------- --- --
  --
  ------- -
    - --------- ---- ------------- -- ------------- -- ------------------ - --
    - --------- ---- ------------- -- ------------- -- ------------------ - --
  --
  ----------- -
    - -------- ---- ------------- ----------- --------------- ----------- -------- ---- -------------- - --
    - -------- ---- ------------- ----------- --------------- ----------- -------- ---- -------------- - --
  --
  ------ -
    - -------- ---- ---------- ---- ---------- ----- --- --------- -- --------- - --
    - -------- ---- ---------- ---- ---------- ----- --- --------- -- --------- - --
  --
--

上面这段示例代码中定义了一份高级导入格式,包括如下部分:

  • agency:运营机构信息
  • calendar:服务日历
  • calendar_dates:服务日历日期
  • fares:票价信息
  • feed_info:数据源信息
  • routes:公交路线信息
  • shapes:线路形态信息
  • stops:停靠点信息
  • stop_times:停靠点时间信息
  • trips:定期行程信息

我们可以使用如下方式来将数据按照高级格式导入 PouchDB:

-- -------------------- ---- -------
----- ---------- - -----------------------
----- ------- - -
  --------- -------------------
  ------- ----------------------------
  ---------- -------------
  ------------ --- ---------
  ----------- ---------------------------
  ---------------- ------
--

--------------------------- -- -
  ------------------- --------------
-------------- -- -
  ------------------- ------- ---------
---

在本示例中,我们使用 gtfs-import 包来导入高级格式数据。如导入成功,将会打印一行 “Import successful!”。

结语

本文介绍了如何使用 gtfs-to-pouch 这个处理 GTFS 数据的 npm 包。我们向你展示了如何初始化 GTFS 数据库,查询 GTFS 数据以及如何使用高级格式导入 GTFS 数据。希望通过本文,你对 GTFS 数据处理的理解更进一步,从而提高自己在前端开发中的技术水平。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055b0f81e8991b448d8b61

纠错
反馈