【问题标题】:GTFS-realtime-bindings for iOS适用于 iOS 的 GTFS 实时绑定
【发布时间】:2017-09-06 22:30:31
【问题描述】:

MTA 地铁数据(以及其他数据)以 GTFS 实时格式进行格式化。为了将 protobuf 转换为字符串表示,我必须使用 gtfs-realtime.proto 通过一些 Google protobuf 工具运行它。唯一的问题是,正如here 所见,gtfs-realtime-bindings 仅适用于

  • 网络
  • Java
  • JavaScript / Node.js
  • PHP
  • Python
  • 红宝石
  • Golang

另外,

我们不提供 C++ 生成代码,请使用官方 protoc 编译器(来自herehere

这些都不是 Swift 或 Objective C。虽然有一个开放的 issue/request 用于 2016 年的 Swift/Objective C 版本,但我想知道我目前能做些什么来做到这一点。到目前为止,我看到的唯一可行的解​​决方案是让服务器解析数据,然后从该服务器而不是直接从 MTA 获取解析的数据(JSON 编码?)。

Here 是协议缓冲区的 Google 页面。我不确定,但有什么方法可以使用现有的数据来读取 GTFS 实时数据。

这是最好的前进道路吗?还有其他可能吗?

【问题讨论】:

    标签: objective-c swift encoding protocol-buffers gtfs


    【解决方案1】:

    正如 Tony Laudig 所指出的,让您的应用直接与 MTA 通信违反了他们的条款和条件,您几乎肯定必须同意这些条款和条件才能获得 api 密钥。

    违反条款和条件通常是一个非常糟糕的主意。对于此 API,您的密钥似乎将被撤销。

    因此,我建议在 Tony 的回答中使用该库。相反,按照你的建议去做:

    让服务器解析数据,然后从该服务器而不是直接从 MTA 获取解析的数据(JSON 编码?[-听起来不错])。

    您列出的任何语言都可以胜任,这只是您最熟悉的语言。

    【讨论】:

      【解决方案2】:

      Objective C 中有一个official library 用于解析 Protobuf。您可以从 GTFS-rt 标准和 MTA 扩展名 .proto 文件中compile classes

      看起来您计划的使用,让应用直接连接到 MTA,不符合 MTA terms and conditions

      1. 在开发应用程序时,您需要提供 MTA 数据馈送 只能从非 MTA 服务器提供给其他人。因此,您将 下载 MTA 数据馈送并将其存储在非 MTA 服务器上 您的应用程序将访问以获取数据。 MTA 禁止 开发一个应用程序,将数据提供给其他人 直接来自 MTA 的服务器。

      【讨论】:

        猜你喜欢
        • 2019-07-16
        • 2015-07-12
        • 1970-01-01
        • 1970-01-01
        • 2011-04-18
        • 1970-01-01
        • 2016-01-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多