Некоторые реализации сервера 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 = refine(geoserver,'massgis*wms','SearchField',... 'serverurl'); floodzone = refine(massgis,'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';
Используйте websave
функция, чтобы выписать файл 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])
wmsfind
| wmsupdate
| wmsread
| websave