wmsfind

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

Синтаксис

layers = wmsfind(querystr)
layers = wmsfind(querystr,Name,Value)

Описание

пример

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'.

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

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

свернуть все

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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 | логический

Широтные пределы поиска, заданного как двухэлементный вектор формы [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