7

現在、OpenLayers クライアント バージョン 2.13.1 を新しいバージョンの OpenLayers OL3 にアップグレードしています。私のセットアップは、WMS マッピング サーバーとしての Mapserver と、前述の OpenLayers クライアントで構成されています。

古いシステムでは、ユーザーがマップの一部をクリックすると、マップファイルが再度生成され、その結果、レイヤーを再描画してマップの一部を色付けするという方法で、ユーザーの操作をサポートしました。OL2 バージョンのコードの例:

$.ajax({
  params: ...
  success: function (data) {
    if (data.success) {
      gisLayer.redraw(true);
    }
  }
});

OL3でも同じ機能を実現したいのですが、再描画機能がありません。便利な関数を 2 つ見つけましたが、同じ機能を得るには追加の作業が必要です。そして - map.render();

コードを動作させるためのもう少し複雑な例も作成しましたが、WMS タイルを取得するためのリクエストには、リクエストを一意にするためのキーとして追加のパラメーターが含まれています。サンプルコードは上記のとおりです。

var params = layer.getSource().getParams();
params.t = getUniqueParam();
layer.getSource().updateParams(params);

わかりました、それが状況です。私が聞きたいのは、WMSリクエストに追加のパラメーターを追加せずに、レイヤーを強制的に再描画できる機能が利用できるかどうかだけですか? 私の知る限り、「問題」はブラウザが画像をキャッシュすることであり、リクエストが以前と同じである場合、ブラウザは古い画像を再び表示します。

助けてくれてありがとう。

4

2 に答える 2