WMSMapRequest

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

Описание

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' для версии 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