Одна из проблем работы с 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
может быть заменен слоями с сервера НАСА 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.
В некоторых случаях сервер становится временно недоступным, или серверное приложение WMS испытывает некоторый тип проблемы. Сервер выпускает код ответа HTTP 500, такой как:
Server returned HTTP response code: 500 for URL: http://xyz.com ...
Работа вокруг: Попробуйте еще раз позже. Также попытайтесь установить различный 'ImageFormat'
параметр.
Если 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 в порядке убывания.
В большинстве случаев, обновленный слой, возвращенный 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.