質問

OpenMapを使用しており、非常に大きなサイズの画像を読み込む必要があります。
これらの画像を大きなラスターとして読み込もうとしましたが、OufOfMemoryExceptionで失敗しました。デバッグモードでは、レイヤーコンストラクターが画像のサイズが大きすぎることを通知します。

OpenMapメーリングリストで、GeoTiffファイルをロードして表示できるMyJAIPluginを見つけました。

OpenMapで300mbのGeoTiffを表示するにはどうすればよいですか?

役に立ちましたか?

解決

少なくとも690mbのファイルサイズのHDマップをロードすることで、ほぼ同じ状況になりました。

私もメーリングリストのJAIPlugInを使用し、内部的にはOMScalingRasterウィッチを使用してBufferedImageで動作します。これらは画像サイズを制限し、デバッグメッセージを表示します。

OMScalingRasterを変更して解決しました。大きな画像を処理するためにBufferedImageをTiledImageに変更し、今後のエラーを修正しました。ここでは、scaleTo(Projection thisProj)メソッドを変更して、JAIでスケーリングすることが重要です。

これでファイルをロードでき、マップ上にレンダリングされます。ただし、ズームアウトしすぎると、OutOfMemoryExceptionがスローされます。これは、私の変更では、表示される画像の部分のサブイメージを作成し、それをBufferedImageとしてOMRasterに渡すためです。

これがmodです。 scaleToメソッドの最後: ジェネラコディセタグプレ

BufferedImageをTiledImageに置き換えることによるその他のエラーについては、同等のTiledImageメソッドを使用してください。ただし、メモリを節約するには、sharedDataBufferフラグ= trueのTiledImageコンストラクタを使用する必要があります。

Exsampleの場合このmod。 1:50000のスケーリングでマップ(圧縮された690mb)を処理でき、レイヤーがメモリ不足と表示する前に1:600000にズームアウトできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top