我正在使用OpenMap,并且必须加载非常大尺寸的图像。
我试图将这些图像加载为大栅格,但由于OufOfMemoryException而失败。在调试模式下,图层构造函数告诉我图像尺寸太大。

在OpenMap邮件列表中,我找到了MyJAIPlugin,它使我可以加载和显示GeoTiff文件。

如何在OpenMap中显示300mb的GeoTiff?

有帮助吗?

解决方案

通过加载至少690mb文件大小的高清地图,我遇到了几乎相同的情况。

我还从邮件列表中使用了JAIPlugIn,并且内部使用了OMScalingRaster,它与BufferedImage一起使用。这些限制了您的图像大小并导致了调试消息。

我已经通过修改OMScalingRaster解决了它。我已将BufferedImage更改为TiledImage以处理大图像并修复了即将发生的错误。在这里重要的是,更改scaleTo(Projection thisProj)方法以与JAI一起缩放。

现在我可以加载文件并将其呈现在地图上。但是,如果缩小得太多,它将抛出OutOfMemoryException,因为在我的修改中,我对图像的一部分做了一个子图像,该图像将是可见的,并将其作为BufferedImage传递给OMRaster。

这是国防部。在scaleTo-method结束时: 通用标签

对于其他错误,通过将TiledImage替换为BufferedImage,请使用等效的TiledImage方法。但是,为了节省内存,您应该将TiledImage构造函数与sharedDataBuffer标志= true一起使用。

用于示例此mod。可以处理比例为1:50000的地图(压缩后的690mb),在图层表示内存不足之前,我可以缩小到1:600000。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top