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