Некоторые реализации сервера 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';
websave(filename,request.RequestURL);
Откройте файл с Google Earth, чтобы просмотреть. На платформах Windows® отобразите файл KML с:
winopen(filename)
Для UNIX® и пользователей Mac, отобразите файл KML с:
cmd = 'googleearth ';
fullfilename = fullfile(pwd, filename);
system([cmd fullfilename])