Создайте Карты WMS, когда доступ в Интернет будет Неустойчив

Чтение данных из серверов WMS требует доступа в Интернет. Однако, если вы считываете данные из сервера, можно сохранить данные как файл GeoTIFF или MAT. Затем можно загрузить данные, не читая его снова из сервера. Сохранение данных WMS к файлам полезно, когда у вас есть неустойчивый доступ в Интернет, или, когда это необходимо, осуществлять обмен данными с кем-то без доступа в Интернет.

В этом примере показано, как создать карту WMS для области вокруг Бостона. Поведение примера зависит от того, есть ли у вас доступ в Интернет, но получившаяся карта является тем же самым.

В примере задайте, есть ли у вас доступ в Интернет при помощи логического скалярного useInternet.

  • Если useInternet true, считайте данные из сервера WMS и обновите сохраненные файлы.

  • Если useInternet false, считайте данные из сохраненных файлов.

useInternet = false;

Если вы используете этот пример в качестве модели, чтобы создать ваши собственные карты WMS, необходимо создать сохраненные файлы в первый раз, когда вы запускаете пример установкой useInternet к true.

Ищите Базу данных WMS слои основной карты из Национальной Карты [1] USGS. Совершенствуйте поиск, чтобы найти слой, содержащий только ортоформирование изображений. Этот шаг не требует доступа в Интернет, потому что База данных WMS установлена с Mapping Toolbox™.

bmapLayers = wmsfind("basemap.nationalmap","SearchFields","ServerURL");
usgsImageryLayer = refine(bmapLayers,"USGSImageryOnly","SearchFields","ServerURL");

Синхронизируйте слой с сервером. wmsupdate функция добавляет краткий обзор, информационные признаки и информацию о стилях и информацию о системе координат к слою.

  • Если useInternet true, синхронизируйте слой с сервером. Сохраните слой в файл MAT.

  • Если useInternet false, загрузите файл MAT.

if useInternet
    usgsImageryLayer = wmsupdate(usgsImageryLayer);
    save("usgsImageryLayer.mat","usgsImageryLayer")
else
    load usgsImageryLayer.mat
end

Задайте географические пределы и размер изображения. В данном примере задайте пределы для области вокруг Бостона и квадратного изображения с длиной стороны 750 пикселей.

latlim = [42.3453 42.3711];
lonlim = [-71.099 -71.0454];
s = 750;

Считайте изображение из сервера.

  • Если useInternet true, затем считайте карту как массив и GeographicCellsReference объект. Сохраните массив и ссылочный объект к файлу GeoTIFF.

  • Если useInternet false, затем считайте файл GeoTIFF.

if useInternet
    [A,R] = wmsread(usgsImageryLayer,"Latlim",latlim,"Lonlim",lonlim, ...
        "ImageHeight",s,"ImageWidth",s);
    geotiffwrite("usgsImageryLayer.tif",A,R)
else
    [A,R] = readgeoraster("usgsImageryLayer.tif");
end

Создайте карту с соответствующими пределами широты и долготы для данных. Отобразите карту.

figure
usamap(A,R)
geoshow(A,R)

[1] Доступные данные от американской Геологической службы, Национальной Геопространственной Программы.

Смотрите также

Функции

Объекты

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте