2017-09-06 18 views
1

MTA地下鉄データ(他のデータも含む)はGTFSリアルタイムでフォーマットされます。 protobufを文字列表現に変換するには、gtfs-realtime.protoを使っていくつかのGoogleのprotobufツールを実行する必要があります。唯一の問題hereを見ることができるように、ということで、GTFSリアルタイム・バインディングのみiOS用GTFSリアルタイムバインディング

  • NET
  • のために用意されていたJava
  • のJavaScript/Node.jsの
  • PHP
  • パイソン
  • ルビー
  • Golang

また、

我々は

hereまたはhereから)そのための公式protocコンパイラを使用し、C++のために生成されたコードを提供していないが一方で、これらはいずれも、スウィフトや目的C.ません2016年のSwift/Objective C版ではissue/requestが公開されていますが、私はこれを行うために現在何ができるのだろうと思っていました。現在のところ、私が見る唯一の実行可能な解決策は、サーバーがデータを解析してから、MTAから直接ではなく、そのサーバーから解析されたデータ(JSONエンコードされたもの)を取得することです。

Hereは、プロトコルバッファのGoogleページです。私は確信していませんが、GTFSリアルタイムのデータを読むためにそこにあるものを使う方法があります。

これは最善の経路ですか?他の可能性はありますか?

答えて

2

トニーLaudigで述べたように、あなたのアプリが直接MTAと通信持つことは、あなたが、ほぼ間違いなく、APIキーを取得するために、に同意しなければならなかっただろう彼らの契約条件の違反です。

一般に、利用規約を破ることはかなり悪い考えです。このAPIの場合、あなたのキーが取り消されるようです。

したがって、私はではないは、トニーの答えでライブラリを使用することを提案します。代わりに、提案したことを実行してください:

サーバーでデータを解析してから、MTAから直接ではなく、そのサーバーから解析されたデータ(JSONエンコードされた[ - サウンド良い])を取得させてください。

あなたがリストした言語のいずれかが仕事をしますが、それはあなたにとって最も快適なことです。

2

Protobufを解析するためにObjective Cにofficial libraryがあります。 GTFS-rt標準とMTA拡張.protoファイルのcompile classesを使用できます。それはアプリが直接MTAに接続した、ご利用予定のように見えます

MTA terms and conditionsに準拠していません。

  1. あなたのアプリを開発するには、あなたはMTAのデータフィードがあることを提供します は、非MTAサーバーからのみ他の人に利用できます。したがって、 は、データを取得するためにあなたのアプリケーションの ユーザがアクセスする非MTAサーバにMTAデータフィードをダウンロードして保存します。 MTAのサーバから直接 のデータを利用できるようにするアプリの開発を、 は禁止しています。
関連する問題