首页
/ 推荐: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成为一个值得尝试的开源项目。立即加入,开启你的地铁数据之旅!

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

热门内容推荐

最新内容推荐

项目优选

收起
openHiTLS-examplesopenHiTLS-examples
本仓将为广大高校开发者提供开源实践和创新开发平台,收集和展示openHiTLS示例代码及创新应用,欢迎大家投稿,让全世界看到您的精巧密码实现设计,也让更多人通过您的优秀成果,理解、喜爱上密码技术。
C
54
469
kernelkernel
deepin linux kernel
C
22
5
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
7
0
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
880
519
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
336
1.1 K
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
181
264
cjoycjoy
一个高性能、可扩展、轻量、省心的仓颉Web框架。Rest, 宏路由,Json, 中间件,参数绑定与校验,文件上传下载,MCP......
Cangjie
87
14
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.09 K
0
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
361
381
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
612
60