wmsfind

Поиск локальной базы данных для серверов и слоев Web map

Описание

пример

layers = wmsfind(querystr) ищет в полях установленной базы данных Картографического Веб-сервиса (WMS) частичные совпадения querystr, который является строкой, строковыми массивами, вектором символов или массивом ячеек векторов символов. По умолчанию wmsfind выполняет поиск по Layer или LayerName свойства, но вы можете включать другие поля в поиск с помощью SearchFields параметр.

wmsfind возвращает layers, массив WMSLayer объекты, содержащие по одному объекту для каждого слоя, чье имя или заголовок частично совпадают querystr. Серверы WMS производят карты пространственно ссылочных растровых данных, таких как температура или повышение, которые известны как layers.

По умолчанию wmsfind выполняет поиск в базе данных WMS, установленной вместе с продуктом. Использование дополнительного Version параметр, вы можете искать базу данных из предыдущего релиза или искать версию базы данных WMS, размещенную на MathWorks® веб-сайт. Информация, найденная в установленной базе данных, была подтверждена во время выпуска программного обеспечения и не обновляется автоматически. Веб-база данных предоставляет более актуальную информацию о серверах, поскольку она регулярно обновляется. Однако обратите внимание, что для поиска в базе данных, размещенной на веб-узле, требуется подключение к Интернету.

layers = wmsfind(querystr,Name,Value) изменяет поиск базы данных WMS на основе значений параметров. Можно сокращать имена параметров, и случай не имеет значения.

Примеры

свернуть все

Поиск по всей базе данных WMS

Поиск в базе данных WMS слоев, содержащих слово «температура». The wmsfind функция возвращает массив WMSLayer объекты.

layers = wmsfind('temperature');

Найдите слои, которые содержат глобальные данные о температуре. Запрос включает символ подстановки звездочки '*'.

layers = wmsfind('global*temperature');

Поиск конкретных полей в базе данных WMS

Поиск по LayerTitle поле для всех слоев, которые содержат точное соответствие для термина 'Rivers'. Вы должны использовать MatchType параметр для задания точного соответствия.

layers = wmsfind('Rivers','MatchType','exact', ...
                 'IgnoreCase',false,'SearchFields','layertitle');

Поиск по LayerName поле для всех слоев, которые содержат частичное соответствие для 'elevation'. По умолчанию wmsfind ищет частичные совпадения.

layers = wmsfind('elevation','SearchFields','layername');

Поиск по LayerName поле для всех уникальных серверов, содержащих 'BlueMarbleNG'.

layers = wmsfind('BlueMarbleNG','SearchFields','layername', ...
                 'MatchType','exact');
urls = servers(layers);

Ограничьте свой поиск определенными географическими областями

Найдите слои, которые содержат данные о повышении для Колорадо. Используйте Latlim и Lonlim параметры для определения местоположения.

latlim = [35 43];
lonlim = [-111 -101];
layers = wmsfind('elevation','Latlim',latlim,'Lonlim',lonlim);

Найдите все слои, которые содержат данные о температуре для точки в Перте, Австралия. Используйте Latlim и Lonlim параметры для определения местоположения.

lat = -31.9452;
lon = 115.8323;
layers = wmsfind('temperature','Latlim',lat,'Lonlim',lon);

Найти все уникальные URL-адреса всех правительственных серверов.

layers = wmsfind('*.gov*','SearchFields','serverurl');
urls = servers(layers);

Поиск нескольких полей в одно и то же время и уточнение поиска

Поиск по обоим LayerTitle и LayerName поля для всех слоев, содержащих слово «температура».

fields = [string('layertitle') string('layername')];
temperature = wmsfind('temperature','SearchFields',fields);

Уточните результаты поиска температуры, чтобы найти только те слои, которые имеют дело с морскими температурами поверхности. Используйте WMSLayer refine объекта способ.

sst = refine(temperature,'sea surface');

Уточните поиск температуры поверхности моря, чтобы найти только те слои, которые имеют отношение к глобальным температурам поверхности моря.

global_sst = refine(sst,'global');

Поиск по всей базе данных WMS и постепенное уточнение поиска

Обратите внимание, что поиск всех слоев из базы данных WMS может занять несколько секунд и потребовать существенного объема памяти. База данных содержит более 100 000 слоев.

Найдите все слои в базе данных WMS и отсортируйте их в набор, который содержит только уникальные заголовки слоев.

layers = wmsfind('*');
layerTitles = sort(unique({layers.LayerTitle}))';

Уточните свой исходный поиск, layers, для включения только тех слоев с глобальным покрытием. Используйте WMSLayer refineLimits объекта способ.

global_layers = refineLimits(layers, ...
                             'Latlim',[-90 90],'Lonlim',[-180 180]);

Уточните результаты поиска по глобальным слоям, чтобы содержать только слои с глобальным размерами, которые включают слово «топография». Используйте WMSLayer refine объекта способ.

global_topography_layers = refine(global_layers,'topography');

Уточните свой первоначальный поиск, layers, чтобы содержать только слои, которые имеют некоторую комбинацию терминов «нефть» и «газ» в LayerTitle поле.

oil_gas_layers = refine(layers,'oil*gas','SearchFields','layertitle');

Поиск в базе данных WMS слоев, содержащих слово «повышение». Поиск онлайн-версии базы данных путем определения Version аргумент пары "имя-значение" как 'online'. Если вы не задаете версию, то wmsfind считывается из установленной базы данных.

elevation = wmsfind('elevation','Version','online');

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

свернуть все

Символы для поиска в полях базы данных WMS, заданные как строковый скаляр, строковые массивы, вектор символов или массив ячеек из векторов символов. querystr может содержать символ подстановки звездочки (*).

Типы данных: char | string

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: [A,R] = wmsfind('elevation','SearchFields','layername');

Игнорируйте случай при сравнении значений полей с querystr, заданный как логическое значение true или false.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Широтные пределы поиска, заданные как двухэлементный вектор вида [southern_limit northern_limit] или скалярное значение, представляющее широту одной точки. Значения находятся в области значений [-90, 90]. Все углы указаны в единицах степеней. Если он предусмотрен и не пуст, заданный слой появляется в результатах только в том случае, если его пределы полностью содержат заданные 'Latlim' пределы. Частичное перекрытие не приводит к совпадению.

Типы данных: double | int16 | int32 | int64 | int8 | single | uint8 | uint16 | uint32 | uint64

Продольные пределы поиска, заданные как двухэлементный вектор вида [western_limit eastern_limit] или скалярное значение, представляющее долготу одной точки. Все углы указаны в единицах степеней. Если он предусмотрен и не пуст, заданный слой появляется в результатах только в том случае, если его пределы полностью содержат заданные 'Lonlim' пределы. Частичное перекрытие не приводит к совпадению.

Типы данных: double | int16 | int32 | int64 | int8 | single | uint8 | uint16 | uint32 | uint64

Строгость соответствия, заданная как вектор символов или строка 'partial' или 'exact'. Если 'MatchType' является 'exact' и querystr является '*', соответствие происходит, когда поле поиска совпадает с символом '*'.

Типы данных: char | string

Поля для поиска в базе данных WMS, заданные как вектор символов, массив ячеек из векторов символов, строка или массив строк. Функция ищет значения заданных полей в базе данных WMS для частичного или точного соответствия с querystr. В следующей таблице перечислены допустимые значения.

ОбластьПоведение
'layername'Поиск по LayerName поле в базе данных WMS. Имя слоя является сокращенной формой LayerTitle и является ключевым словом, используемым сервером для извлечения слоя.
'layertitle'Поиск по LayerTitle поле в базе данных WMS. Заголовок слоя включает описательную информацию о слое и облегчает понимание значения растровых значений слоя.
'layer'Поиск по обоим LayerTitle и LayerName поля.
'servertitle'Поиск по ServerTitle поле в базе данных WMS. Заголовок сервера содержит описательную информацию о сервере.
'serverurl'Поиск по ServerURL поле в базе данных WMS. URL-адрес сервера и информация о слое облегчают чтение растровых слоев функцией wmsread.
'server'Поиск по обоим ServerTitle и ServerURL поля.
'any'Поиск по всем полям.

Типы данных: char | cell | string

Версия считываемой базы данных WMS, заданная как одно из следующих значений.

ЗначениеОписание
'installed'Чтение из установленной базы данных. Это значение по умолчанию. Информация, найденная в установленной базе данных, статична и не обновляется автоматически - она была подтверждена во время релиза ПО.
'online'Читайте из версии базы данных, размещенной на веб-сайте MathWorks. Эта версия базы данных содержит более актуальную информацию о серверах, поскольку она регулярно обновляется. Однако обратите внимание, что для поиска в этой интерактивной базе данных требуется подключение к Интернету.
'custom'Читайте из wmsdatabase.mat файл в пути MATLAB, например, из предыдущего релиза.

Типы данных: char | string

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

свернуть все

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

Совет

  • The WMSLayer объекты, возвращенные wmsfind содержат свойства с теми же именами, что и имена полей базы данных WMS, наряду с тремя дополнительными свойствами: 'Abstract', 'CoordRefSysCodes', и 'Details'. База данных WMS не содержит сведений об этих свойствах. Чтобы получить эту информацию о сервере, вы должны использовать wmsupdate функция, которая обновляет эти свойства WMSLayer путем загрузки информации с сервера. Чтобы просмотреть эти свойства, используйте WMSLayer.disp метод, задающий 'Properties' значение параметров 'all'. Если вы хотите узнать больше о сервере WMS, используйте wmsinfo функция с указанным URL-адресом сервера.

Введенный в R2009b