WMSMapRequest

Картографический Веб-сервис запрос карты

Описание

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

Создание

Вы можете

Описание

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

пример

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

Свойства

расширить все

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

Картографический Веб-сервис слои, заданные как массив WMSLayer объекты.

Layer содержит одну уникальную ServerURL, который должен совпадать с ServerURL свойство Server. The 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. The WMSMapRequest объект инициализирует ImageHeight свойство либо 512, либо целочисленное значение, которое лучше всего сохраняет соотношение сторон координатных пределов, не меняя координатных пределов.

Ширина в пикселях для запрошенной растровой карты, заданная как положительное целое число. Свойство MaximumWidth определяет максимальное значение для ImageWidth. The 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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

Прочитайте глобальную температурную карту с полустепенью разрешением для поверхности моря за ноябрь 2009 года. Карта с датчика AMSR-E на спутнике NASA Aqua использует данные, предоставленные сервером WMS НАСА 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 степени Цельсия. The 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