我正在使用 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(图像的来源)。结果是,每次单击都会加载不同的图像并在网页上显示,但不会清除前一个图像。所以我在网页上显示了 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 错误。