OpenLayers を使用して、動的に読み込まれた画像を表示しています。私が使用しているコードは次のとおりです。
var map;
function init(strURL) {
map = new OpenLayers.Map('map');
var options = { numZoomLevels: 3,
isBaseLayer: true, };
var graphic = new OpenLayers.Layer.Image(
'City Lights',
strURL + "?sc=page",
new OpenLayers.Bounds(-180, -88.759, 180, 88.759),
new OpenLayers.Size(580, 288),
options
);
// graphic.events.on({
// loadstart: function () {
// OpenLayers.Console.log("loadstart");
// },
// loadend: function () {
// OpenLayers.Console.log("loadend");
// }
// });
var jpl_wms = new OpenLayers.Layer.WMS("NASA Global Mosaic",
"http://t1.hypercube.telascience.org/cgi-bin/landsat7",
{ layers: "landsat7" }, options);
map.addLayers([graphic, jpl_wms]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent();
}
ボタン クリック イベントでこの関数を呼び出し、その時点で strURL (画像のソース) を渡します。その結果、クリックするたびに別の画像が読み込まれ、Web ページに表示されますが、前の画像はクリアされません。したがって、Webページ上の5つの異なる画像が5回のクリックで表示されます。
私のjavascriptの知識は限られているので、これがばかげた質問であれば申し訳ありません。この動作を停止するにはどうすればよいですか? ご協力ありがとうございます。
また、次の行がよくわかりませんでした。
var jpl_wms = new OpenLayers.Layer.WMS("NASA Global Mosaic",
"http://t1.hypercube.telascience.org/cgi-bin/landsat7",
{ layers: "landsat7" }, options);
しかし、これらの行を削除すると js エラーが発生するため、これらの行が必要であることはわかっています。