Запишите изображения WMS в файл KML

Некоторые реализации сервера WMS, такие как GeoServer, могут представить свои карты в неформате изображения, такие как KML. KML является диалектом XML, используемым браузерами Google Earth™ и Google Maps™. WebMapServer.getMap метод и wmsread функция не позволяет вам использовать формат KML, потому что они импортируют только стандартные форматы графического изображения. Работа вокруг этого ограничения при помощи WMSMapRequest.RequestURL свойство.

  1. Ищите Базу данных 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);
    
  2. Установите географические пределы для области вокруг Бостона, Массачусетс.

    latlim = [ 42.305  42.417];
    lonlim = [-71.131 -70.99];
    
  3. Создайте WMSMapRequest возразите и установленный географические пределы.

    request = WMSMapRequest(floodzone);
    request.Latlim = latlim;
    request.Lonlim = lonlim;
    
  4. Получите графическое изображение из сервера.

    [A, R] = wmsread(request.RequestURL);
    
  5. Отобразите изображение в окне рисунка.

    figure
    usamap(A, R)
    geoshow(A, R)
    

  6. Запросите формат изображения, который открывается в Google Earth.

    request.ImageFormat = 'application/vnd.google-earth.kml+xml';
  7. Используйте urlwrite функция, чтобы выписать файл KML.

    filename = 'floodzone.kml';
    urlwrite(request.RequestURL, filename);
    
  8. Откройте файл с Google Earth, чтобы просмотреть. На платформах Windows® отобразите файл KML с:

    winopen(filename)

    Для UNIX® и пользователей Mac, отобразите файл KML с:

    cmd = 'googleearth ';
    fullfilename = fullfile(pwd, filename);   
    system([cmd fullfilename])
    

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

| |

Похожие темы