exponenta event banner

Устранение неполадок серверов 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 от Центра космических полётов НАСА Годдарда WMS SVS Image Server (http://svs.gsfc.nasa.gov/cgi-bin/wms?) или слой Blue Marble: Next Generation от сервера WMS NASA Earth Observations (NEO) (http://neowms.sci.gsfc.nasa.gov/wms/wms?).

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

Код ответа 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.

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

Обходной путь: Выберите другой слой.

Неправильный масштаб

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.

См. также

| |

Связанные темы