Одна из проблем работы с 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.
Работа вокруг: Используйте URL TiledWMS
или найдите различный сервер.
Глобальный Сервисный сервер Формирования изображений 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.