bufferm

Буферные зоны для полигонов долготы широты

Синтаксис

[latb,lonb] = bufferm(lat,lon,bufwidth)
[latb,lonb] = bufferm(lat,lon,bufwidth,direction)
[latb,lonb] = bufferm(lat,lon,bufwidth,direction,npts)

Описание

[latb,lonb] = bufferm(lat,lon,bufwidth) вычисляет буферную зону вокруг строки или полигона. Если векторы, lat и lon, в модулях степеней, задают строку, то latb и lonb задают полигон, который содержит все точки, которые находятся в пределах определенного расстояния, bufwidth, строки. bufwidth является скаляром, заданным в градусах дуги вдоль поверхности. Если векторы, lat и lon задают полигон, то latb и lonb задают область, которая содержит весь внешний вид точек к полигону, которые находятся в пределах bufwidth полигона.

[latb,lonb] = bufferm(lat,lon,bufwidth,direction) где direction задает, является ли буферная зона в ('in') или вне ('out') полигона. Третья опция, 'outPlusInterior', возвращает объединение внешнего буфера (как был бы вычислен с помощью 'out') с внутренней частью полигона. Если вы не предоставляете значение direction, bufferm использует 'out' в качестве значения по умолчанию и возвращает буферную зону вне полигона. Если вы предоставляете 'in' как значение direction, bufferm возвращает буферную зону в полигоне. Если вы находите буферную зону вокруг строки, 'out' является единственной допустимой опцией.

[latb,lonb] = bufferm(lat,lon,bufwidth,direction,npts) управляет числом точек, используемым, чтобы создать круги о вершинах полигона. Большее число точек производит более сглаженные буферы, но требует большего количества времени. Если npts не использован, 13 точек на круг используются.

Примеры

свернуть все

Отобразите упрощенную версию пяти полигонов, которые представляют Великие озера.

load conus
tol = 0.05;
[latr, lonr] = reducem(gtlakelat, gtlakelon, tol);
figure('Color','w')
ax = usamap({'MN','NY'});
setm(ax,'MLabelLocation',5)
geoshow(latr, lonr, 'DisplayType', 'polygon', ...
   'FaceColor', 'blue')
title('Great Lakes')

Установите буферную ширину и отобразите буферную зону вне озер.

figure;
bufwidth = 1;  
[latb, lonb] = bufferm(latr, lonr, bufwidth);
geoshow(latb, lonb, 'DisplayType', 'polygon', ...
   'FaceColor', 'yellow')
title('Exterior Buffer Zone')

Отобразите буферную зону в полигоне.

figure;
[lati, loni] = bufferm(latr, lonr, 0.3*bufwidth, 'in');
geoshow(lati, loni, 'DisplayType', 'polygon', ...
   'FaceColor', 'magenta')
title('Interior Buffer Zone')

Отобразите Великие озера с внутренними и внешними буферными зонами на фоне соседних государств.

figure('Color','w')
ax = usamap({'MN','NY'});
setm(ax,'MLabelLocation',5)
geoshow(latb, lonb, 'DisplayType', 'polygon', 'FaceColor', 'yellow')
geoshow(latr, lonr, 'DisplayType', 'polygon', 'FaceColor', 'blue')
geoshow(lati, loni, 'DisplayType', 'polygon', 'FaceColor', 'magenta')
geoshow(uslat, uslon)
geoshow(statelat, statelon)
title('Great Lakes and Buffer Zones with Neighboring States')

Используйте опцию 'outPlusInterior'.

bufWidth = 0.5; 
[latz, lonz] = bufferm(latr, lonr, bufWidth,'outPlusInterior'); 
figure 
geoshow(latz,lonz,'DisplayType','polygon','FaceColor','yellow') 
title('Exterior Buffer Zone including Polygon Interior');

Советы

Закройте все полигоны прежде, чем обработать их с bufferm. Если полигон не закрывается, bufferm принимает, что это - строка.

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

Представлено до R2006a