Многоугольные буферные зоны

Буферная зона является областью, находящейся на заданном расстоянии от функции карты. Для векторных геоданных буферные зоны строятся как многоугольники. Буферная зона может быть задана как локус точек на определенном расстоянии от контура функции полигона, внутри или вне полигона. Буферные зоны образуют равноудаленные контурные линии вокруг объектов.

bufferm функция вычисляет и возвращает векторы, которые представляют набор точек, которые определяют буферную зону. Он формирует буфер путем размещения небольших кругов в вершинах многоугольника и прямоугольников вдоль каждого из его линии сегментов и применения операции polygon объединения set к этим объектам.

Сгенерируйте буфер внутренний к многоугольнику

В этом примере показано, как использовать bufferm функция для генерации буферной зоны, внутренней для многоугольника сухопутной области.

Импортируйте форму мадагаскарского многоугольника.

madagascar = shaperead('landareas','UseGeoCoords',true, ...
    'Selector', {@(name)strcmpi(name,'Madagascar'),'Name'});

Создайте карту с изображением Мадагаскара.

figure
worldmap('madagascar')
geoshow(madagascar)

Использование bufferm создать буферную зону, которая простирается на 0,75 степени вглубь страны от побережья Мадагаскара.

madlat = madagascar.Lat;
madlon = madagascar.Lon;
bufwidth = 0.75;
direction = 'in';
[latbuf,lonbuf] = bufferm(madlat,madlon,bufwidth,direction);

Показать буферную зону зеленым цветом.

geoshow(latbuf,lonbuf,'DisplayType','polygon','FaceColor','green')