現在、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リクエストに追加のパラメーターを追加せずに、レイヤーを強制的に再描画できる機能が利用できるかどうかだけですか? 私の知る限り、「問題」はブラウザが画像をキャッシュすることであり、リクエストが以前と同じである場合、ブラウザは古い画像を再び表示します。
助けてくれてありがとう。