Я новичок в 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);