Одна из проблем работы с WMS заключается в том, что иногда у вас могут возникнуть проблемы с подключением к серверу.
Сервер может выдать ошибку тайм-аута, такую как:
Connection timed out: connect
Или
Read timed out
Обходной путь: Попробуйте задать 'TimeoutInSeconds'
параметр к большему значению. Значение тайм-аута по умолчанию составляет 60 секунд. (Функции wmsread
, wmsinfo
, и wmsupdate
все имеют 'TimeoutInSeconds'
параметры.)
Сервер лаборатории реактивного движения НАСА (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.
В некоторых случаях сервер становится временно недоступным, или приложение сервера 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
свойство.
Некоторые слои не заданы в EPSG:4326 или CRS:84 системе координат-привязок. Вы не можете считать эти слои с wmsread
функция.
Обходной процесс: Используйте WMSMapRequest
объект для создания URL запроса и WebMapServer.getMap
метод для чтения слоя. См. Понимание кодов систем координат-ссылок и получение вашей карты с WebMapServer.getMap
для получения дополнительной информации.
Иногда можно подключиться к серверу WMS, но вы не получаете ожидаемую карту.
Сервер может вернуть пустую карту.
Обходной путь: Вы можете изменить шкалу вашей карты; увеличьте высоту и ширину изображения или измените географические границы. Другой возможностью является то, что ваш запрошенный географический диапазон находится вне области слоя, и в этом случае вы должны изменить объем вашего запроса. Третья возможность состоит в том, что у вас выбран неправильный формат изображения; в этом случае измените 'ImageFormat'
параметр.
Вы можете получить это сообщение об ошибке:
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);
Сервер выдает очень длинное сообщение об ошибке, начиная со следующей фразы:
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. В этом случае вы получаете сообщение об ошибке, такое как:
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.