Некоторые реализации сервера WMS, такие как GeoServer, могут представить свои карты в неформате изображения, такие как KML. KML является диалектом XML, используемым браузерами Google Earth™ и Google Maps™. Метод WebMapServer.getMap
и функция wmsread
не позволяют вам использовать формат KML, потому что они импортируют только стандартные форматы графического изображения. Работа вокруг этого ограничения при помощи свойства WMSMapRequest.RequestURL
.
Ищите Базу данных WMS слои на любом GeoServer. Совершенствуйте, чтобы включать только слои с сервера MassGIS. Совершенствуйте тот список, чтобы возвратить слой Flood Zone FEMA.
geoserver = wmsfind('geoserver', 'SearchField', 'any'); massgis = geoserver.refine('massgis*wms', 'SearchField', ... 'serverurl'); massgis = wmsupdate(massgis); floodzone = massgis.refine('FEMA Flood Zones', 'SearchField', ... 'LayerTitle'); floodzone = floodzone(1);
Установите географические пределы для области вокруг Бостона, Массачусетс.
latlim = [ 42.305 42.417]; lonlim = [-71.131 -70.99];
Создайте объект WMSMapRequest
и установите географические пределы.
request = WMSMapRequest(floodzone); request.Latlim = latlim; request.Lonlim = lonlim;
Получите графическое изображение из сервера.
[A, R] = wmsread(request.RequestURL);
Отобразите изображение в окне рисунка.
figure usamap(A, R) geoshow(A, R)
Запросите формат изображения, который открывается в Google Earth.
request.ImageFormat = 'application/vnd.google-earth.kml+xml';
Используйте функцию urlwrite
, чтобы выписать файл KML.
filename = 'floodzone.kml';
urlwrite(request.RequestURL, filename);
Откройте файл с Google Earth, чтобы просмотреть. На платформах Windows® отобразите файл KML с:
winopen(filename)
Для UNIX® и пользователей Mac, отобразите файл KML с:
cmd = 'googleearth ';
fullfilename = fullfile(pwd, filename);
system([cmd fullfilename])