95 个版本 (52 个重大更新)

0.56.1 2023 年 5 月 22 日
0.55.0 2023 年 3 月 27 日
0.53.0 2022 年 12 月 2 日
0.52.0 2022 年 10 月 24 日
0.5.0 2019 年 7 月 4 日

#236 in 文件系统


用于 transit_model_builder

AGPL-3.0-only

1MB
18K SLoC

transit_model

GitHub release (latest by date) Crates.io API documentation GitHub Workflow Status Codecov Code Coverage License: AGPL v3.0

transit_model 是一个用于管理、转换和丰富公交数据的 Rust crate。
这是通过实现 NTFS 模型(在 navitia 中使用)来完成的。

此存储库汇集了提供转换和丰富公交数据使能库和二进制文件的 crates。

此外,transit_model 本身也是一个提供各种功能的库。请参考代码、示例文档 以了解它们。

请检查每个 crate 附带的文档

Docker使用方法

上述所有二进制程序都可以与Docker一起使用。所有二进制程序都是navitia/transit_model镜像的一部分,该镜像与cratetransit_model标记在一起。以下以gtfs2ntfs为例。

mkdir output-ntfs/
docker run \
	--volume "${PWD}/tests/fixtures/gtfs:/gtfs" \
	--volume "${PWD}/output-ntfs:/ntfs" \
	navitia/transit_model \
	gtfs2ntfs \
	--input /gtfs \
	--output /ntfs

设置Rust环境

transit_model是用Rust开发的。

如果您想贡献或安装二进制程序,您需要安装Rust环境:请参阅rustup.rs

PROJ依赖

基于PROJproj crate允许转换定位坐标。

一些transit_model的crate(请参阅每个文档)使用PROJ
因此,必须安装在系统上以编译和使用这些crate。

PROJ的二进制程序

proj crate需要PROJ

如果您的系统已安装pkg-config并且安装了足够新的PROJ版本,它将被使用。否则,crate将回退到从源构建PROJ,这需要一些构建时间依赖项。

要安装PROJ的构建时间依赖项,您可以执行以下命令(在Debian系统上)

make install_proj_deps

您还可以全局安装所需的PROJ版本,以避免完全重建(例如:cargo clean

make install_proj

PROJ安装说明也可能有所帮助。

作为开发者使用PROJ和transit_model

proj crate是C库的绑定。

PROJ被配置为Rustfeature
因此,为了在编码中使用它,必须激活proj feature(cargo build --features=proj)。
然后应条件性地启用特定代码,使用以下格式:#[cfg(feature="proj")]

NTFS 支持级别

transit_model 支持 NTFS 格式的绝大部分功能。
根据标准,一些功能未完全支持

  • 不支持行组(文件 line_groups.txtline_group_links.txt)。
  • 在版本 v0.10.0 中引入的 stop_times.txt 中的字段 trip_short_name_at_stop 不支持(参见 NTFS 更改日志(法语))。

贡献

请参阅 CONTRIBUTING 了解有关代码的更多信息或如何测试、贡献、报告问题。

许可证

根据 GNU Affero General Public License v3.0 许可

依赖关系

~12–23MB
~311K SLoC