WMSMapRequest

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

Описание

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

Создание

Вы можете

mapRequest = WMSMapRequest(layer)
mapRequest = WMSMapRequest(layer,server)

Описание

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

пример

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

Свойства

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

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

Слои Web Map Service, заданные как массив объектов WMSLayer.

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

Координатный ссылочный системный код, заданный как вектор символов 'CRS:84' для версии 1.3.x WMS и '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, сервер устанавливает все пиксели неданных на значение цвета фона.

Типы данных: логический

Цвет фона (неданные) пиксели карты, заданной как трехэлементный числовой вектор. Значения колеблются от 0 до 255. Значение по умолчанию, [255,255,255], задает цвет фона как белый. Можно установить BackgroundColor с помощью non-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 для запроса GetMap WMS, заданного как вектор символов. В целом ServerURL совпадает с ServerURL Layer. Однако некоторые серверы WMS, такие как Microsoft® TerraServer, требуют различного URL для запросов GetMap, чем для запросов GetCapabilities WMS. По умолчанию ServerURL является Layer(1).ServerURL.

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

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

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

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

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

Примеры

свернуть все

Считайте глобальную переменную, разрешение полустепени, карту температуры поверхности моря в течение месяца ноября 2009. Карта, от датчика AMSR-E на спутнике Воды НАСА, использует данные, обеспеченные Наблюдениями Земли НАСА (NEO) сервер WMS.

sst = wmsfind('AMSRE_SSTAn_M');
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 интервалах выборки арксекунд. Значения находятся в модулях метров.

layers = wmsfind('srtm30', 'SearchField', 'LayerName');
layer = refine(layers,'data.worldwind','SearchField','serverurl')
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/bil';
Z = getMap(server, mapRequest.RequestURL);

Отобразите и очертите карту на уровне моря (0 метров).

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

Смотрите также

Функции

Объекты

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