wmsfind

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

Описание

пример

layers = wmsfind(querystr) ищет поля установленной базы данных Web Map Service (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 слои, которые содержат слово "температура". 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 объекты, один для каждого слоя найдены.

Советы

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

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