2

OpenLayersを使用して、おそらく「loadend」イベントを使用して、マップイメージが正しくロードされたかどうかを確認する簡単な方法はありますか?

GeoServerからマップタイルを読み取り、OpenLayersを使用してそれらを表示しています。ほとんどの場合、画像は妥当な時間で表示されます。ときどき(特にマウスホイールを使用して前後にスクロールする場合)、「loadend」イベントが画像が読み込まれたかのように発生しますが、何も表示されません。

HTMLを調べてみると、画像のURLは正しいようですが、背景色がピンク(通常は透明)で、イベントオブジェクトに役立つものが何も表示されません。

何か案は?

4

3 に答える 3

8

GeoServerが時々タイルの生成に失敗している可能性があります。パフォーマンスを改善するためにできる調整があるかもしれないので、私はそれを調査するために少し時間を費やすかもしれません。

OpenLayersの観点からは、役立つ可能性のある簡単なことがいくつかあります。まず、OpenLayers.IMAGE_RELOAD_ATTEMPTS画像の取得に失敗した場合にレイヤーに再試行する回数を指示するというプロパティがあります。この値のデフォルトは0(ゼロ)です。コードの先頭で3に設定してみて、それが役立つかどうかを確認します。

OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;

また、壊れたタイルを取得してピンク以外のものとして表示したい場合OpenLayers.Util.onImageLoadErrorColorは、コードの上部にある値を更新できます。

OpenLayers.Util.onImageLoadErrorColor = 'transparent';

このすべてのソースをここで参照できます:http://trac.openlayers.org/browser/trunk/openlayers/lib/OpenLayers/Util.js

于 2010-01-19T16:10:16.203 に答える
2

OpenLayers 2.12では、必要なcssは

    .olImageLoadError
    {
        display: none !important;
    }
于 2013-01-24T22:36:18.740 に答える