保护OpenLayers免受政府关闭

保护OpenLayers免受政府关闭,openlayers,geoserver,Openlayers,Geoserver,我是OpenLayers的新手,正在开发一个现有的应用程序。它在同一张地图上汇集了几个不同的图层,其中一个图层访问了美国地质勘探局的地图服务StreamStats。由于当前政府关闭,流当前返回的不是地图块,而是一个HTML页面,上面写着“由于联邦政府关闭,usgs.gov和大多数相关网站不可用” 按照我们的设置方式,我们显示一个“正在加载数据…”弹出窗口,并将StreamStats添加为矢量层。当它初始化时,我们清除弹出窗口。然而,由于OpenLayers只返回一个HTML页面,它似乎从未初始化

我是OpenLayers的新手,正在开发一个现有的应用程序。它在同一张地图上汇集了几个不同的图层,其中一个图层访问了美国地质勘探局的地图服务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);

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

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

谢谢——我想我不清楚时间安排。如果我发送一个Ajax请求,我会在它返回时包含一个回调函数。我不知道如何使用OpenLayers来实现这一点,因此我会收到通知,说明磁贴应该准备好进行评估。在将此提供程序添加到可用提供程序之前,请先执行此操作。如果可能的话,请确保您有一些备用提供商。谢谢——我想我不清楚时间方面。如果我发送一个Ajax请求,我会在它返回时包含一个回调函数。我不知道如何使用OpenLayers来实现这一点,因此我会收到通知,说明磁贴应该准备好进行评估。在将此提供程序添加到可用提供程序之前,请先执行此操作。如果可能的话,请确保您有一些回退提供程序。