Диагностируйте серверы WMS

Ошибки связи

Одна из проблем работы с WMS - то, что иногда вы можете испытать затруднения при соединении с сервером.

Ошибка из-за тайм-аута

Сервер может выпустить ошибку из-за тайм-аута, такую как Connection timed out: connect или Read timed out.

Работа вокруг: Попытайтесь установить 'TimeoutInSeconds' параметр wmsread, wmsinfo, или wmsupdate функционируйте к большему значению. Значения по умолчанию установки тайм-аута к 60 секундам.

Недоступный сервер

Сервер может быть временно недоступным или занятым, или серверное приложение WMS может испытать проблему. В некоторых случаях сервер выпускает код ответа HTTP 500, такой как:

Server returned HTTP response code: 500 for URL: http://xyz.com ...

Обходные решения:

  • Попробуйте еще раз позже.

  • Попытайтесь запросить различный формат изображения путем установки 'ImageFormat' параметр.

  • Попытайтесь соединиться многократно при помощи a while цикл и try, catch блок. Например, этот код предпринимает пять попыток получить информацию о Национальной Карте USGS Бесшовный сервер. Если сбои связи после пяти попыток, то ошибки в коде.

    numberOfAttempts = 5;
    attempt = 0;
    info = [];
    serverURL = 'http://basemap.nationalmap.gov/ArcGIS/services/USGSImageryOnly/MapServer/WMSServer?';
    while(isempty(info))
        try
            info = wmsinfo(serverURL);
            orthoLayer = info.Layer(1);
        catch e 
            
            attempt = attempt + 1;
            if attempt > numberOfAttempts
                throw(e);
            else
                fprintf('Attempting to connect to server:\n"%s"\n', serverURL)
            end        
        end
    end

Неустойчивый доступ в Интернет

У вас есть неустойчивый доступ в Интернет, или вы хотите совместно использовать данные WMS с кем-то без доступа в Интернет.

Работа вокруг: Чтение данных из серверов WMS требует доступа в Интернет. Однако, если вы считываете данные из сервера, можно сохранить данные как файл GeoTIFF или MAT. Если вы сохраняете данные, можно загрузить их, не читая их снова из сервера. Для получения дополнительной информации смотрите, Создают Карты WMS, когда доступ в Интернет Неустойчив.

Географические пределы в порядке убывания или за пределы

Некоторые серверы не следуют за OGC® инструкции по спецификации относительно пределов широты и долготы.

Спецификация OGC требует, и функции WMS ожидают, что пределы возрастают. Однако некоторые сайты имеют убывающие пределы. В результате вы можете видеть ошибку, такую как:

"??? Error using ==> WMSMapRequest>validateLimit at 1313
Expected the elements of 'Latlim' to be in ascending order." 

Кроме того, некоторые серверы имеют пределы, которые превышают границы [-180 180] для долготы и [-90,90] для широты.

Работа вокруг: установите Latlim и Lonlim свойства WMSLayer объект:

layers = wmsfind('bluemarbleng');
layer = wmsupdate(layers(1));
latlim = [min(layer.Latlim), max(layer.Latlim)];
lonlim = [min(layer.Lonlim), max(layer.Lonlim)];
layer.Latlim = [max([ -90, latlim(1)]), min([ 90, latlim(2)])];
layer.Lonlim = [max([-180, lonlim(1)]), min([180, lonlim(2)])];
[A,R] = wmsread(layer);

Необходимо обновить слой прежде, чем установить пределы. В противном случае, wmsread функционируйте обновляет пределы с сервера, и вы еще раз не поддержали пределы.

Системы координат Non-EPSG:4326

Некоторые слои не заданы в EPSG:4326 или системе координат CRS:84. Чтение этих слоев с wmsread функция не поддерживается.

Работа вокруг: Создайте запрос URL при помощи WMSMapRequest возразите и считайте слой при помощи getMap объектная функция. Для получения дополнительной информации смотрите Чтение Карты WMS Используя Различные Системы координат.

Карта, не возвращенная

Иногда можно связать с сервером WMS, но вы не получаете карту, которую вы ожидаете.

Контурная карта возвращена

Сервер может возвратить контурную карту.

Работа вокруг: можно изменить шкалу карты; или увеличьте высоту изображения и ширину или измените географические границы. Другая возможность состоит в том, что ваша требуемая географическая степень находится вне степени слоя, в этом случае необходимо изменить степень запроса. Третья возможность состоит в том, что вам выбрали неправильный формат изображения; в этом случае измените 'ImageFormat' параметр.

Файл HTML возвращен

Вы можете видеть это сообщение об ошибке:

The server returned an HTML file instead of an image file.

Работа вокруг: Следуйте за направлениями в сообщении об ошибке. Следующий пример, который использует демонстрационный URL, иллюстрирует тип сообщения об ошибке, которое вы получаете.

% Example command.
[A,R] = wmsread(['https://www.mathworks.com?',...
'&BBOX=-180,-90,180,90&CRS=EPSG:4326&VERSION=1.1.1']);

Демонстрационное сообщение об ошибке:

Error using WebMapServer>issueReadGetMapError (line 974)
The server returned an HTML file instead of an image file. 
You may view the complete error message by issuing the command,
 web('https://www.mathworks.com?&BBOX=-180,-90,180,90&CRS=EPSG:4326&VERSION=1.1.1')
  or
 urlread('https://www.mathworks.com?&BBOX=-180,-90,180,90&CRS=EPSG:4326&VERSION=1.1.1').
 
Error in WebMapServer>readImageFormat (line 874)
        issueReadGetMapError(filename, requestURL);

Error in WebMapServer>readGetMapFile (line 852)
    A = readImageFormat(filename, requestURL);

Error in WebMapServer/getMap (line 299)
            A = readGetMapFile(filename, h.RequestURL);

Error in wmsread (line 376)
A = server.getMap(mapRequestURL);

XML-файл возвращен

Сервер выпускает очень длинное сообщение об ошибке, начинаясь с этой фразы:

An error occurred while attempting to get the map from the server. 
The error returned is <?xml version="1.0" encoding="utf-8"?> ...

Работа вокруг: Эта проблема происходит, потому что сервер порывает с требованиями стандарта OGC и возвращает документ возможностей XML, а не требуемую карту. Выберите различный слой или сервер.

Неподдерживаемая версия WMS

В редких случаях сервер использует различную и неподдерживаемую версию WMS. В этом случае вы получаете сообщение об ошибке, такое как:

The WMS version, '1.2.0', listed in layer.Details.Version is not 
supported by the server. The supported versions are: '1.0.0' '1.1.0' 
'1.1.1' '1.3.0' .

Работа вокруг: Выберите различный сервер.

Другие неисправимые ошибки сервера

Сервер выдает ошибку, указывая, что никакая коррекция или обходное решение не существуют. Эти случаи приводят к следующим типам сообщений об ошибке:

Server redirected too many  times (20)

An error occurred while attempting to parse the XML capabilities 
document from the server.

Unexpected end of file from server

An error occurred while attempting to get the map from the server. 
The server returned a map containing no data.

Смотрите также

| |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте