exponenta event banner

WMSMapRequest

Запрос карты службы веб-карт

Описание

A WMSMapRequest объект содержит запрос к серверу WMS на получение карты, представляющей географическую информацию. Сервер WMS отображает карту в виде цветного или серого изображения. Объект содержит свойства, которые можно задать для управления географической протяженностью, визуализацией или размером требуемой карты.

Создание

Можно

Описание

mapRequest = WMSMapRequest(layer) создает WMSMapRequest объект, установка Layer собственность. WMSMapRequest объект обновляет свойства Layer, при необходимости.

пример

mapRequest = WMSMapRequest(layer,server) создает WMSMapRequest объект, установка Layer и Server свойства. ServerURL имущество layer должны соответствовать ServerURL имущество server. Server обновления объектов Layer свойства.

Свойства

развернуть все

Сервер веб-карты, указанный как скаляр WebMapServer объект. Если сервер не указан в качестве аргумента при создании WMSMapRequest, значение Server имеет значение ServerURL из Layer.

Слои службы веб-карт, указанные как массив WMSLayer объекты.

Layer содержит один уникальный ServerURL, которые должны соответствовать ServerURL имущество Server. Server свойство обновляет свойства Layer при установке свойства.

Код системы координат, указанный как символьный вектор 'CRS:84' для WMS версии 1.3.x, и 'EPSG:4326' для всех остальных версий.

  • Если 'EPSG:4326' не найден в Layer.CoordRefSysCodes, то CoordRefSysCode значение устанавливается от первого CoordRefSysCode найдено в Layer.Details.BoundingBox структурный массив.

  • Когда CoordRefSysCode имеет значение 'EPSG:4326' или 'CRS:84', XLim и YLim свойства имеют значение [] и Latlim и Lonlim свойства устанавливаются в географическом масштабе, определяемом Layer массив.

  • Когда CoordRefSysCode имеет значение, отличное от 'EPSG:4326' или 'CRS:84', то XLim и YLim свойства задаются из значений, найденных в Layer.Details.BoundingBox структура и Latlim и Lonlim свойства имеют значение [].

  • Автоматические проекции не поддерживаются. (Автоматические проекции начинаются с 'AUTO'.)

Типы данных: char

Карта или географическая растровая ссылка, указанная как MapCellsReference или GeographicCellsReference объект. RasterReference привязывает растровую карту к внутренней системе координат

Пределы широты, заданные как двухэлементный вектор. Latlim содержит южный и северный широтные пределы запроса в единицах градусов. Пределы должны возрастать. По умолчанию пределы широты охватывают все пределы широты, найденные в Layer.Latlim собственность.

Пределы долготы, заданные как двухэлементный вектор. Lonlim содержит западный и восточный продольные пределы запроса в единицах градусов. Пределы должны быть возрастающими и находиться в диапазоне [-180, 180] или [0, 360]. По умолчанию пределы долготы охватывают все продольные пределы, найденные в Layer.Lonlim собственность.

Западный и восточный пределы запрашиваемой карты в единицах системы координат, указанных как двухэлементный вектор. Пределы должны возрастать. Можно задать XLim только при установке CoordRefSysCode в значение, отличное от EPSG:4326.

Южный и северный пределы требуемой карты в единицах системы координат, указанных как двухэлементный вектор. Пределы должны возрастать. Можно задать YLim только при установке CoordRefSysCode в значение, отличное от EPSG:4326.

Высота в пикселях для запрошенной растровой карты, заданная как положительное целое число. Собственность MaximumHeight определяет максимальное значение для ImageHeight. WMSMapRequest объект инициализирует ImageHeight свойство 512 или целочисленное значение, которое наилучшим образом сохраняет соотношение сторон пределов координат без изменения пределов координат.

Ширина в пикселях для запрошенной растровой карты, заданная как положительное целое число. Собственность MaximumWidth определяет максимальное значение для ImageWidth. WMSMapRequest объект инициализирует ImageWidth свойство 512 или целочисленное значение, которое наилучшим образом сохраняет соотношение сторон пределов координат без изменения пределов координат.

Это свойство доступно только для чтения.

Максимальная высота в пикселях для запрошенной карты, указанная как число 8192.

Типы данных: double

Это свойство доступно только для чтения.

Максимальная ширина в пикселях для запрошенной карты, указанная как число 8192.

Типы данных: double

Уровень требуемой карты, указанный как символьный вектор. При установке свойства 'elevation' должно быть значением Layer.Details.Dimension.Name поле.

Временной интервал запрошенной карты, указанный как символьный вектор или числовой скаляр. См. раздел WMSMapRequest.Time для получения дополнительной информации.

Типы данных: double | char

Имя и значение образца размера, заданного как двухэлементный массив ячеек символьных векторов. Имя не может быть 'time' или 'elevation'. SampleDimension{1} должно быть значением Layer.Details.Dimension.Name поле.

Флаг, указывающий прозрачность фона карты, заданный как логический скаляр. При установке Transparent кому trueсервер устанавливает все пикселы, не представляющие элементы или значения данных на этом слое, в прозрачное значение, создавая составную карту. При установке Transparent кому falseсервер устанавливает для всех пикселов, не относящихся к данным, значение цвета фона.

Типы данных: logical

Цвет фоновых (не связанных с данными) пикселей карты, определяемый как трехэлементный числовой вектор. Значения находятся в диапазоне от 0 до 255. Значение по умолчанию, [255,255,255], указывает цвет фона как белый. Можно задать BackgroundColor использование не -uint8 числовые значения, но они приводятся и сохраняются как uint8.

Типы данных: uint8

Стиль, используемый при визуализации изображения, заданный как символьный вектор или массив ячеек символьных векторов. StyleName должна быть допустимой записью в Layer.Details.Style.Name поле. Массив ячеек символьных векторов содержит то же количество элементов, что и Layer.

Требуемый формат изображения, используемый для визуализации карты в виде изображения, заданного как символьный вектор. Если установлен, формат должен соответствовать записи в Layer.Details.ImageFormats массив ячеек и запись в ImageRenderFormats собственность. Если значение не задано, по умолчанию используется значение в поле ImageRenderFormats собственность.

Это свойство доступно только для чтения.

Предпочтительные форматы визуализации изображения при Transparent имеет значение false, задается как массив ячеек. Первая запись является наиболее предпочтительным форматом изображения. Если предпочтительный формат не сохранен в Layer свойство, затем выбирается следующий формат из списка, пока не будет найден формат. ImageRenderFormats массив не используется, если ImageFormat свойство установлено.

Это свойство доступно только для чтения.

Предпочтительные форматы визуализации изображения при Transparent имеет значение true, задается как массив ячеек. Первая запись является наиболее предпочтительным форматом изображения. Если предпочтительный формат не сохранен в Layer свойство, затем выбирается следующий формат из списка, пока не будет найден формат. Если прозрачный формат изображения не найден в списке, или если ImageFormat свойство имеет значение, отличное от значения по умолчанию, затем ImageFormat неизменен.

URL-адрес сервера для WMS GetMap запрос, указанный как символьный вектор. В общем, ServerURL соответствует ServerURL из Layer. Однако для некоторых серверов WMS, таких как Microsoft ® Terra Server, требуется другой URL-адрес GetMap запросы, чем для WMS GetCapabilities запросы. По умолчанию ServerURL является Layer(1).ServerURL.

Типы данных: char

Это свойство доступно только для чтения.

Полный URL-адрес для WMS GetMap запрос, указанный как символьный вектор. Он состоит из ServerURL с дополнительными парами параметр/значение WMS.

Функции объекта

boundImageSize Связанный размер растровой карты

Примеры

свернуть все

Прочитайте глобальную карту температуры поверхности моря с разрешением до половины градуса за ноябрь 2009 года. На карте с датчика AMSR-E на спутнике NASA Aqua используются данные, предоставленные сервером WMS NASA's Earth Observations (NEO).

sst = wmsfind('AMSRE_SSTAn_M');
sst = sst(1);
server = WebMapServer(sst.ServerURL);
mapRequest = WMSMapRequest(sst, server);
timeRequest = '2009-11-01';
mapRequest.Time = timeRequest;
samplesPerInterval = .5;
mapRequest.ImageHeight = ...
   round(abs(diff(sst.Latlim))/samplesPerInterval);
mapRequest.ImageWidth = ...
   round(abs(diff(sst.Lonlim))/samplesPerInterval);
mapRequest.ImageFormat = 'image/png';
sstImage = server.getMap(mapRequest.RequestURL);

Прочтите легенду для слоя с помощью OnlineResource Поле URL в LegendURL структура. Легенда показывает, что температура колеблется от -2 до 35 градусов Цельсия. WMSMapRequest объект обновляет информацию о слое с сервера.

url = mapRequest.Layer.Details.Style(1).LegendURL.OnlineResource;
[legendImg,cmap] = imread(url);
if ~isempty(cmap)
   % Convert indexed image to RGB.
   legendRGB = ind2rgb(legendImg,cmap);
else
   % Already have an RGB image.
   legendRGB = legendImg;
end

Отображение карты температуры и легенды.

fig = figure;
ax = worldmap('world');
setm(ax,'MlabelParallel',-90,'MlabelLocation',90)
    geoshow(sstImage,mapRequest.RasterReference);
    title({mapRequest.Layer.LayerTitle,timeRequest})

figurePosition = fig.Position;
centerWidth = figurePosition(3)/2;
axleft = centerWidth-size(legendImg,2)/2;
axbottom = 30;
axwidth  = size(legendRGB,2);
axheight = size(legendRGB,1);
axes('Units','pixels','Position',[axleft axbottom axwidth axheight])
image(legendRGB)
axis off

Чтение абстрактной информации для этого слоя из MetadataURL поле.

options = weboptions('ContentType','xmldom','Timeout',10);
xml = webread(mapRequest.Layer.Details.MetadataURL,options);
abstract = xml.getElementsByTagName('abstract').item(0).getTextContent

Считывайте и отображайте глобальную отметку и слой батиметрии для залива Мэн с интервалом выборки 30 дуговых секунд. Значения в единицах измерения.

info = wmsinfo('https://worldwind26.arc.nasa.gov/wms/elev?');
layers = info.Layer;
layer = refine(layers,'SRTM','SearchField','layername');
server = WebMapServer(layer.ServerURL);
mapRequest = WMSMapRequest(layer,server);
mapRequest.Latlim = [40 46];
mapRequest.Lonlim = [-71 -65];
samplesPerInterval = 30/3600;
mapRequest.ImageHeight = ...
   round(abs(diff(mapRequest.Latlim))/samplesPerInterval);
mapRequest.ImageWidth = ...
   round(abs(diff(mapRequest.Lonlim))/samplesPerInterval);
mapRequest.ImageFormat = 'image/tiff';
Z = getMap(server, mapRequest.RequestURL);
R = mapRequest.RasterReference;

Отображение карты и построения контурных линий на уровне моря. Примените карту цветов, соответствующую данным отметки. Добавьте панель цветов и заголовок.

figure
worldmap(mapRequest.Latlim,mapRequest.Lonlim)
geoshow(double(Z),R,'DisplayType','texturemap')
contourm(double(Z),R,[0,0],'Color','k')
demcmap(double(Z))
colorbar
title({'Gulf of Maine',mapRequest.Layer.LayerTitle}, ...
       'Interpreter','none','FontWeight','bold')

См. также

Функции

Объекты

Представлен в R2009b