首页
/ 推荐:MTA 实时地铁API JSON代理

推荐:MTA 实时地铁API JSON代理

2024-05-24 05:32:33作者:瞿蔚英Wynne

MTAPI是一个小巧的HTTP服务器,它将MTA(纽约大都会运输署)的实时地铁信息源,从Protocol Buffers/GTFS格式转换为JSON。该应用还增加了缓存功能,并支持通过位置和列车线路检索信息。

活跃开发中

该项目正处于活跃的开发阶段,API的任何部分都可能发生变化。我们非常欢迎您的反馈。

运行服务器

MTAPI是一个基于Python 3.3+设计的Flask应用程序。

  1. 创建一个settings.cfg文件,可以参考提供的settings.cfg.sample示例。
  2. 设置环境并安装依赖项。
    $ python3 -m venv .venv
    $ source .venv/bin/activate
    $ python3 -m pip install -r requirements.txt
    
  3. 运行服务器
    $ python app.py
    

如果配置文件名不是settings.cfg,则设置环境变量MTAPI_SETTINGS为你的配置文件路径。

若在uWSGI下运行,请包括--enable-threads标志。

端点

有关获取火车数据及其样本输入和输出的端点列表,请参阅此处

设置选项

  • MTA_KEY (必需)
    在[hhttps://api.mta.info/#/signup]申请的API密钥。 默认:None

  • STATIONS_FILE (必需)
    包含车站信息的JSON文件路径。详情见生成车站文件部分。 默认:None

  • CROSS_ORIGIN
    添加CORS头部到HTTP响应。 默认:在调试模式下为"*",否则为None

  • MAX_TRAINS
    限制每个车站列出的列车数量。 默认:10

  • MAX_MINUTES
    列出的火车信息的时间范围上限。 默认:30

  • CACHE_SECONDS
    应用程序请求MTA API新数据的频率。 默认:60

  • THREADED
    启用后台数据刷新,防止请求因从MTA API获取新数据而挂起。 默认:True

  • DEBUG
    标准Flask选项。开启后将启用增强的日志记录和通配符CORS头。 默认:False

生成车站文件

MTA提供了一些静态数据文件关于地铁系统,但没有包含每个车站的权威信息。MTAPI附带了一个脚本,可以从MTA提供的'stops.txt' 和 'transfers.txt' 数据集中解析数据,并尝试将不同的列车站点归类为地铁站。MTAPI会使用这个JSON文件来获取站名和位置。分类并非完美,鼓励对结果文件进行编辑。

使用方法:

$ python make_stations_csv.py stops.txt transfers.txt > stations.csv
# 编辑stations.csv中的分组
$ python make_stations_json.py stations.csv > stations.json
# 编辑stations.json中的名字

帮助与问题

提交GitHub Issues请求以获得帮助。

相关项目

以下是一些使用MTAPI的项目:

  • http://wheresthefuckingtrain.com

许可证

该项目遵循MIT许可协议。


MTAPI是开发者友好的工具,它简化了与MTA实时数据的交互,无论你是想构建一款方便纽约市民查询地铁状态的应用,还是对公共交通API感兴趣,它都是理想的选择。其轻量级的设计、灵活的配置选项以及易于集成的特点,使得MTAPI成为一个值得尝试的开源项目。立即加入,开启你的地铁数据之旅!

登录后查看全文
热门项目推荐