Java Android GTFS应用程序

Java Android GTFS应用程序,java,android,iphone,ios,gtfs,Java,Android,Iphone,Ios,Gtfs,我正在尝试一个使用GTFS的应用程序。这似乎是个愚蠢的问题,但我找不到任何答案 以色列是一个相当小的国家,没有那么多公共汽车基础设施,GTF的压缩文件大小约为120MB。 现在我能想到的唯一可行的方法就是下载文件,但是用手机下载120MB可能需要很长时间。当然,你只能这样做一次,并保存在手机上的数据库中,但它仍然需要下载120MB 由于它是压缩的,我无法通过服务器解压它,而只是获取txt文件 所以基本上我是在问,我怎样才能在不下载压缩文件的情况下将信息传送到手机上 我见过并使用过使用相同GTFS

我正在尝试一个使用GTFS的应用程序。这似乎是个愚蠢的问题,但我找不到任何答案

以色列是一个相当小的国家,没有那么多公共汽车基础设施,GTF的压缩文件大小约为120MB。 现在我能想到的唯一可行的方法就是下载文件,但是用手机下载120MB可能需要很长时间。当然,你只能这样做一次,并保存在手机上的数据库中,但它仍然需要下载120MB

由于它是压缩的,我无法通过服务器解压它,而只是获取txt文件

所以基本上我是在问,我怎样才能在不下载压缩文件的情况下将信息传送到手机上

我见过并使用过使用相同GTFS文件的应用程序,即使在第一次加载时,它们的加载速度也非常快

我希望你理解我的问题,不知道如何更好地解释它

谢谢


p.s我也会制作一个iPhone应用程序,这是同样的问题,因此iPhone标签

一种方法可能是在应用程序开发过程中预处理GTFS数据。您可以将其加载到SQLite数据库中,并在运行时使用核心数据从文件中获取所需的数据。这也让您有机会只包含应用程序实际需要的数据-要求用户下载他们不需要的额外数据是没有意义的。

一种方法可能是在应用程序开发过程中预处理GTFS数据。您可以将其加载到SQLite数据库中,并在运行时使用核心数据从文件中获取所需的数据。这也让你有机会只包含你的应用程序实际需要的数据——要求用户下载他们不需要的额外数据是没有意义的。

使用协议二进制格式(pbf),形式上是google,现在是开源的。它结构紧凑,可快速搜索,因此无需在设备上解压缩它并将其加载到该设备上的数据库中,因为pbf充当数据库。只需在代码中包含pbf库即可进行查询。当然,在在线分发数据之前,您必须压缩它一次

以谷歌的形式使用协议二进制格式(pbf),现在是开源的。它结构紧凑,可快速搜索,因此无需在设备上解压缩它并将其加载到该设备上的数据库中,因为pbf充当数据库。只需在代码中包含pbf库即可进行查询。当然,在在线分发数据之前,您必须压缩它一次

未压缩的GTFS文件刚刚超过1GB,将其一半添加到手机上的一个DB会导致一个巨大的DB和一个巨大的应用程序从市场/应用程序商店下载,这不是一个问题吗?您需要所有这些数据吗?例如,GTFS数据可能包含详细的路由路径信息(可能非常大)。你的应用程序会使用这些数据吗?如果没有,就不要包括在内。不,我没有。那么最好的方法是什么呢?是否包含sql文件?我在某个地方读到,这样它实际上会占用两倍的大小,一个用于实际文件,另一个用于数据库本身(至少在Android中),我不确定如何在Android上做到这一点的确切细节。理想情况下,您应该包含一个预加载的SQLite数据库文件,您可以简单地打开并开始读取(使用SQLite库)。这样做只需要很少的启动时间。好的,谢谢!我将尝试一下这种方式(还注意到stop_times.txt文件,我认为我不需要它,大小为0.98 GB,所以这很好)感谢未压缩的GTFS文件刚刚超过1 GB,在手机上的一个DB中添加一半会导致一个巨大的DB和一个巨大的应用程序从市场/应用程序商店下载,这不是一个问题吗?你需要所有这些数据吗?例如,GTFS数据可能包含详细的路由路径信息(可能非常大)。你的应用程序会使用这些数据吗?如果没有,就不要包括在内。不,我没有。那么最好的方法是什么呢?是否包含sql文件?我在某个地方读到,这样它实际上会占用两倍的大小,一个用于实际文件,另一个用于数据库本身(至少在Android中),我不确定如何在Android上做到这一点的确切细节。理想情况下,您应该包含一个预加载的SQLite数据库文件,您可以简单地打开并开始读取(使用SQLite库)。这样做只需要很少的启动时间。好的,谢谢!我将尝试一下这种方法(还注意到stop_times.txt文件,我认为我不需要它,它的大小是0.98 GB,所以这很好)谢谢