exponenta event banner

updateLayers

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

Описание

пример

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

Примеры

свернуть все

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

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 со словом «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