2012-10-03 78 views
1

我想上使用GTFS一個應用程序的工作。這可能看起來像一個愚蠢的問題,但我找不到任何答案。的Android應用程序GTFS

的GTFS以色列,一個相當小的國家,沒有那麼多公交車的基礎設施,大約是120 MB的壓縮文件。 現在我可以想到的唯一可行的方法是下載文件,但使用手機下載120 MB需要相當長的時間。當然,您只能做一次並將其保存在手機的數據庫中,但仍需要下載120 MB。

既然是拉上的,我不能把它解壓縮在服務器和比剛拿到txt文件..

所以基本上我問,我怎樣才能得到的信息到手機上,無需下載壓縮文件?

我見過和使用它使用相同的GTFS文件的應用程序,他們裝載的真快,甚至在第一次加載..

我希望你明白我的問題,不知道該如何解釋好。

謝謝!

P.S我會做一個iPhone應用程序也和它同樣的問題,因此iPhone標籤

回答

1

一種方法可能是您的預處理應用開發過程中的GTFS數據。您可以將它加載到SQLite數據庫中,並使用Core Data在運行時從文件中獲取所需的數據。這也讓您有機會只包含您的應用程序實際需要的數據 - 要求用戶下載他們不需要的額外數據是沒有意義的。

+0

的uncomressed GTFS文件是剛剛超過1 GB,在一個巨大的數據庫和巨大的應用從市場/ App Store下載手機結果即使添加了一半的DB,是不是有問題? –

+0

你需要*所有*這些數據嗎?例如,GTFS數據可能包含詳細的路徑路徑信息(可能非常大)。這些數據會被你的應用使用嗎?如果沒有,請不要包含它。 –

+0

不,我不知道。那麼做這件事的最好方法是什麼?包括一個SQL文件?我讀的地方,這種方式實際上佔用兩倍,一旦實際的文件,一個是DB本身(Android中至少) –

0

使用協議的二進制格式(PBF)以往的名稱谷歌和現在開源的。它緊湊且快速搜索,因此無需在設備上解壓縮並將其加載到該設備的數據庫中,因爲pbf充當數據庫。只需在你的代碼中包含pbf庫來查詢它。當然,在網上發佈數據之前,你必須壓縮一次。