exponenta event banner

wmsfind

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

Описание

пример

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

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

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

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

Примеры

свернуть все

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

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

layers = wmsfind('temperature');

Поиск слоев, содержащих глобальные данные о температуре. Запрос содержит подстановочный символ звездочки «*».

layers = wmsfind('global*temperature');

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

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

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

Поиск в LayerName для всех слоев, которые содержат частичное совпадение для отметки. По умолчанию 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 объекты, по одному для каждого найденного слоя.

Совет

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

Представлен в R2009b