Поиск и устранение проблем с серверами WMS

Ошибки соединения

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

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

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

Connection timed out: connect

Или

Read timed out

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

Сервер больше не предоставляет полные услуги WMS

Сервер лаборатории реактивного движения НАСА (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 может быть заменен слоями от сервера NASA WorldWind (https://data.worldwind.arc.nasa.gov/elev?). Слой Blue Marble может быть заменен слоем Blue Marble от NASA Goddard Пространства Рейса Center WMS SVS Изображения Server (http://svs.gsfc.nasa.gov/cgi-bin/wms?) или слой Blue Marble: Next Generation от сервера NASA Earth Observations (NEO) WMS Server (http://neowms.sci.gsfc.nasa.gov/wms/wms?).

Слой Daily Planet может быть заменен на 'True Color (1 day - Terra/MODIS Rapid Response)' слой от сервера NASA Earth Observations (NEO) WMS.

HTTP-ответ Кода 500

В некоторых случаях сервер становится временно недоступным, или приложение сервера 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.

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

Обходное решение: выберите другой слой.

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

The 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® спецификация по пределам широты и долготы.

Латлим и Лоним в порядке убывания

Спецификация 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.

См. также

| |

Похожие темы