updateLayers

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

Описание

пример

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

Примеры

свернуть все

Обновите свойства глобального мозаичного слоя MODIS, полученного из наблюдений Земли НАСА сервер 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) 

Слой, используемый в этом примере, является любезностью системы наблюдения Земли НАСА.

Найдите слои с серверов USGS со словом “изображением” в сервере 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