updateLayers

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

Синтаксис

[updatedLayer,index] = updateLayers(server,layer)

Описание

пример

[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