使用用于渗透的mapfilewriter插件创建.map文件

时间:2011-10-14 15:09:40

标签: android

我试图在我的Android应用程序中创建一个.map文件来使用它。我的观点是借助mapsforge库在屏幕上显示地图。库需要.map文件。问题是使用osmosis mapfilewriter插件生成它。当我使用命令

./osmosis --rx file=/home/user/poland.osm --mw file=result.map bbox=51.09,16.9,51.14,17

我得到了

SEVERE: Thread for task 1-rx failed
java.lang.OutOfMemoryError: Java heap space

我尝试使用另一个参数顺序,但它也不起作用。我也尝试使用-Xmx1200m选项来增加javas堆内存,但内存使用情况也是如此,并没有帮助。

我很感激你的帮助。

2 个答案:

答案 0 :(得分:2)

使用参数type=hd

type参数有两个选项ramhd。虽然我没有看到文档没有明确说明hd的含义,但我猜它意味着“硬盘”,这意味着它会将数据卸载到磁盘上,而不是将其全部保存在内存中。

结果命令将是:

./osmosis --rx file=/home/user/poland.osm --mw file=result.map bbox=51.09,16.9,51.14,17 type=hd

答案 1 :(得分:1)

如果你有足够的内存,你需要告诉Java它(否则它只会使用有限的数量);但这不是直接传给渗透的论据。

在Windows上,您可以关注this advice given by Emilie Laffray on the OSM-dev list

  

在osmosis.bat中是以下行... REM#JAVACMD_OPTIONS - The   附加到java命令的选项,通常用于修改jvm   最大内存等设置。

     

所以,要么修改osmosis.bat,要么创建一个名为osmosis.bat的新文件   在所有用户配置文件目录或您的配置文件目录中   包括'set JAVACMD_OPTIONS = -Xmx1024M'行(设置最大值   内存使用量为1GB,如果你有足够的RAM)......

在Linux上(我也假设是Mac OS X),您可以创建文件~/.osmosis 包含行

JAVACMD_OPTIONS=-Xmx1024M 

将在启动时通过渗透加载。请注意,上面的两个示例都使用值1024M,即您允许Java访问1024 MB的RAM - 您可以使用不同的值,具体取决于您的系统。