updateLayers

Обновление свойств слоя

Описание

пример

[updatedLayer,index] = updateLayers(server,layer) возвращает массив WMSLayer Объекты и обновляют свойства слоя значениями с сервера веб-карты, server. The WMSLayer массивы направленности layer должно содержать только одну уникальную ServerURL. The updateLayers функция удаляет слои, более недоступные на сервере. Логический массив index содержит true для каждого доступного слоя.

Примеры

свернуть все

Обновление свойств глобального мозаичного слоя MODIS, полученного с сервера NASA Earth Observations WMS.

nasa = wmsfind('NASA Earth Observations','SearchField','any');
modis = refine(nasa,'land*day*month');
modis = modis(1);

Создайте объект WebMapServer.

server = WebMapServer(modis.ServerURL);

Обновление свойств слоя MODIS.

updatedLayer = updateLayers(server,modis);

Получите карту и отобразите ее.

mapRequest = WMSMapRequest(updatedLayer,server);
A = getMap(server,mapRequest.RequestURL);
R = mapRequest.RasterReference;
figure
ax = worldmap('world');
geoshow(A,R)
setm(ax,'MLabelParallel',-90,'MLabelLocation',90)
title({'MODIS Global Mosaic',modis.LayerTitle})

Просмотрите метаданные слоя.

metadata = webread(updatedLayer.Details.MetadataURL);
disp(metadata) 

Слой, используемый в этом примере, предоставлен НАСА Earth Observing System.

Найти слои с серверов USGS со словом «image» в URL сервера.

 usgsLayers = wmsfind('usgs*image','SearchField','serverurl');

Найдите слои для отдельного сервера, обновите их свойства и добавьте их к updatedLayers массив.

serverURLs = usgsLayers.servers;
updatedLayers = [];
fprintf('Updating layer properties from %d servers.\n', ...
       numel(serverURLs));
for k=1:numel(serverURLs)
   serverLayers = refine(usgsLayers, serverURLs{k}, ...
          'SearchField','serverurl','MatchType','exact');
   serverURL = serverLayers(1).ServerURL;
   fprintf('Updating properties from server %d:\n%s\n', ...
          k, serverURL);
   server = WebMapServer(serverURL);
   try
      layers = updateLayers(server,serverLayers);
      % Grow using concatenation because layers can have any
     % length ranging from 0 to numel(serverLayers).
      updatedLayers = [updatedLayers; layers];
   catch e
       fprintf('Server %s is not responding.\n', ...
              serverURL);
       fprintf('Error message is %s\n', e.message)
    end
end 

Входные параметры

свернуть все

Сервер веб-карты, заданный как массив WebMapServer объекты.

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

Выходные аргументы

свернуть все

Обновленные слои службы веб-карты, возвращенные как массив WMSLayer объекты. updatedLayers имеет тот же размер, что и layer(index).

Доступность слоев, возвращаемая как логический массив. index содержит true для каждого доступного слоя.

Совет

updateLayers доступ к Интернету для обновления свойств. Иногда сервер WMS недоступен, или прошло несколько минут до обновления свойств.

Представлено до R2006a