【问题标题】:working with osmdroid offline zip files (tiles)使用 osmdroid 离线 zip 文件(图块)
【发布时间】:2012-04-20 15:50:31
【问题描述】:

我正在离线模式下使用 osmdroid 地图查看器。我已经下载了带有 osmdroid zip 格式的 Mobile Atlas creator 的磁贴,一切正常。我想知道是否可以有多个 zip 文件?我只想要 2 或 3 个彼此远离的不同位置。

有什么帮助吗?

【问题讨论】:

    标签: android osmdroid


    【解决方案1】:

    是的,文件夹中可以有多个 zip 文件。我有 3 个文件对应于我设备上的不同区域。他们都在离线时给我一个地图显示。

    【讨论】:

    • 我想一次加载其中一个 zip 文件。同时加载所有这些会导致 OutOfMemoryException
    • 供参考,我的 3 个不同区域的文件大小分别为 18、36 和 64MB。我没有收到任何 OOM 异常。我认为 Osmdroid 在上线之前会依次检查文件夹中的所有 zip 文件以查看该特定图块是否存在。你的 zip 文件有多大?
    • 其中两个大约 50MB。其他一些小于 10MB。
    • 也许我很幸运,当时我的手机有很多内存。我在 64MB 的文件中有一个很大的伦敦区域,缩放级别为 16(这让我可以阅读街道名称)。这一直有效,不会给我带来任何数据使用成本。也许如果你将 50Mb 的文件分割成更小的文件,它可能会在你的手机上运行。
    • 有没有办法提取不同目录中的zip文件?我认为打开 zip 文件是一项耗费时间和资源的任务。
    【解决方案2】:

    我在想一层总是有一个 zip 文件 - 比如 mapinik、osmarender 等。

    但是...我查看了代码,您似乎可以这样做。 查看 zip 文件的内部,如果有类似以下的结构:mapinik/zoomLevel/x/y - 您应该能够添加另一个具有相同结构的文件,该文件应该可以工作。

    我看到代码正在所有存档文件中查找磁贴路径。我只是不确定“所有存档文件”是什么意思,我没有时间调查或测试这个:)

    希望能有所帮助。

    【讨论】:

    • 你是对的,但是有一个问题:文件大小!我合并了两个 zip 文件,然后得到了 OutOfMemoryException。
    【解决方案3】:

    OutOfMemory 异常是因为 heapsize 已满。大多数/所有 Android 手机的堆大小都很小(从 16 到 48mb)。还应该有一个解决方法 - 将数据导出到 SQLite 而不是 ZIP,atlas creator 也可以这样做。 我已经有一段时间没有看到 OSMdroid 代码了,但我很确定他也可以阅读这种东西,这样你就不会遇到 OutOfMemory 问题。关于 SQLite 的一件事是 2gb 限制,但它仍然不错。

    【讨论】:

      猜你喜欢
      • 2013-03-29
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      • 2012-09-23
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多