1

我是 OpenLayers 的新手,正在开发现有的应用程序。它在同一张地图上汇集了几个不同的图层,其中一个图层访问了 USGS 地图服务 StreamStats。由于当前的政府关闭,该流当前返回的不是地图图块,而是一个 HTML 页面,上面写着“由于联邦政府关闭,usgs.gov 和大多数相关网站不可用”。

我们设置它的方式是显示“正在加载数据...”弹出窗口并将 StreamStats 添加为矢量图层。当它初始化时,我们清除弹出窗口。然而,因为 OpenLayers 只是返回一个 HTML 页面,它似乎永远不会初始化并且弹出窗口就在那里。如果新图层从地图服务获取无用数据,我将如何向 OpenLayers 添加事件处理程序以更好地处理错误?

这是一个代码片段:

streamStatsKmlLayer = new OpenLayers.Layer.Vector("StreamStats Basin", {
   projection: new OpenLayers.Projection("EPSG:4326"),
   strategies: [new OpenLayers.Strategy.Fixed()],
   protocol: new OpenLayers.Protocol.HTTP({
      url: sskmlurl,
      format: new OpenLayers.Format.KML({
         maxDepth: 0,
         extractStyles: true,
         extractAttributes: false
      })
   })
});
map.addLayer(streamStatsKmlLayer);
4

1 回答 1

1

也许您可以使用其他一些技术(jQuery ajax、servlet...)来探测给定的地图图块 url(您的选择之一)并分析结果。如果结果是 HTML 并显示一些消息,甚至不运行 OpenLayers 代码?看到这些网站倒闭看起来很疯狂,至少他们让重要的网站保持活力……

于 2013-10-07T13:40:46.647 回答