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

Ошибки связи

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

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

Сервер может выпустить ошибку из-за тайм-аута, такую как:

Connection timed out: connect

Или

Read timed out

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

Server No Longer Provides Full WMS Services

Сервер Лаборатории реактивного движения (JPL) НАСА может выпустить следующее сообщение об ошибке:

This server no longer provides full WMS services!

Сервер DataFed, http://webapps.datafed.net/OnEarth_JPL.ogc?, каскадные слои с сервера JPL и могут выпустить следующее сообщение об ошибке:

Error in Execution. Cannot fetch url.

Работа вокруг: используйте TiledWMS URL или находит различный сервер.

Глобальный Сервисный сервер Формирования изображений JPL, http://onearth.jpl.nasa.gov/wms.cgi?, больше не предоставляет полные услуги WMS ни для одного из наборов данных. Любой сервер (например, http://webapps.datafed.net/OnEarth_JPL.ogc?) это располагается каскадом, данные из этого сервера также затронуты изменением.

К небольшому подмножеству данных можно получить доступ с помощью нестандартного TiledWMS запрос. Доступные мозаичные шаблоны могут быть найдены в:

http://pat.jpl.nasa.gov/wms.cgi?request=GetTileService

Параметры WMS должны быть в точном порядке. Если вы хотите получить мозаику, можно предварительно ожидать префикс, 'http://onearth.jpl.nasa.gov/wms.cgi?/SERVICE=WMS&' перед запросом, найденным в CDATA раздел GetTileService запрос.

Например:

url = ['http://onearth.jpl.nasa.gov/wms.cgi?/SERVICE=WMS&Version=1.1.1&' ... 
'request=GetMap&layers=global_mosaic&srs=EPSG:4326&'  ... 
'format=image/jpeg&styles=visual&width=512&height=512&' ... 
'bbox=-180,58,-148,90']; 
[A, R] = wmsread(url);

Слои вертикального изменения от onearth.jpl.nasa.gov может быть заменен слоями с сервера НАСА WorldWind (https://data.worldwind.arc.nasa.gov/elev?). Слой Blue Marble может быть заменен слоем Blue Marble от Центра космических полетов имени Годдарда НАСА Сервер WMS SVS Изображений (http://svs.gsfc.nasa.gov/cgi-bin/wms?) или Синий Мрамор: слой Next Generation от Наблюдений Земли НАСА (NEO) Сервер WMS (http://neowms.sci.gsfc.nasa.gov/wms/wms?).

Слой The Daily Planet может быть заменен 'True Color (1 day - Terra/MODIS Rapid Response)' слой от Наблюдений Земли НАСА (NEO) сервер WMS.

Код 500 ответа HTTP

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

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

Работа вокруг: Попробуйте еще раз позже. Также попытайтесь установить различный 'ImageFormat' параметр.

Удаленный WMSServlet

Если columbo.nrlssc.navy.mil сервер выдает ошибку, такие как:

WebMapServer cannot communicate to the host columbo.nrlssc.navy.mil.
The host is unknown.

Это сообщение указывает, что сервер, к которому оно пытается получить доступ, более не доступен.

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

Неправильная шкала

columbo.nrlssc.navy.mil сервер часто выдает это сообщение об ошибке:

This layer is not visible for this scale. The maximum valid scale
is approximately X. Zoom in and try again if desired. The scale of 
the image requested is Y.

X и Y представляйте определенные значения, которые варьируются от слоя до слоя.

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

Проблемы с географическими пределами

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

Latlim и Lonlim в порядке убывания

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

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

Работа вокруг: Чтобы решить эту проблему, установите Latlim и Lonlim свойства WMSLayer:

layer = wmsfind('SampleServer.com', 'SearchField', 'serverurl');
layer = wmsupdate(layer);
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 обновляет пределы с сервера, и у вас еще раз есть убывающие пределы.

Пределы превышают границы

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

Работа вокруг: Чтобы решить эту проблему, выполните ту же процедуру, обрисованную в общих чертах в Latlim и Lonlim в порядке убывания.

Проблемы с изменением сервера LayerName

В большинстве случаев, обновленный слой, возвращенный wmsupdate должен иметь ServerURL и LayerName свойства, которые совпадают с теми из слоя, который вы вводите, как введено. В некоторых случаях, когда слой обновляется от columbo.nrlssc.navy.mil сервер, сервер возвращает слой с различным LayerName, но ServerURL и LayerTitle то же самое. Слои от columbo.nrlssc.navy.mil сервер имеет имена, такие как 'X:Y', где X и Y числа ASCII. Со времени вашего последнего обновления слой был добавлен к или удален из сервера, вызывающего сдвиг в последовательности слоев. Начиная с LayerName свойство создается с числами ASCII на основе положения слоя в этой последовательности, LayerName свойство изменилось. Для слоев от columbo.nrlssci.navy.mil сервер, wmsupdate совпадает с LayerTitle свойство, а не LayerName свойство.

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

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

Работа вокруг: используйте WMSMapRequest возразите, чтобы создать запрос URL и WebMapServer.getMap метод, чтобы считать слой. См. Коды Системы координат Понимания и Получение Вашей Карты с WebMapServer.getMap для получения дополнительной информации.

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

Иногда можно связать с сервером 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.

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

| |

Похожие темы