Некоторые реализации сервера WMS, такие как GeoServer, могут отображать свои карты в формате, отличном от неизображения, таком как KML. KML - XML-диалект, используемый браузерами Google Earth™ и Google Maps™. The WebMapServer.getMap
метод и wmsread
функция не позволяет вам использовать формат KML, потому что они импортируют только стандартные форматы графических изображений. Обойдите это ограничение при помощи WMSMapRequest.RequestURL
свойство.
Поиск слоев в базе данных WMS на любом GeoServer. Уточнить, чтобы включать только слои с сервера MassGIS. Обновите этот список, чтобы вернуть слой FEMA Flood Zone.
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';
websave(filename,request.RequestURL);
Откройте файл с Google Earth, чтобы просмотреть. В Windows® платформы, отобразите файл KML с:
winopen(filename)
Для UNIX® и пользователи Mac отображают файл KML с:
cmd = 'googleearth ';
fullfilename = fullfile(pwd, filename);
system([cmd fullfilename])