Запишите слои WMS в файл KML

Некоторые реализации сервера 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])

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

| | |

Похожие темы

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