exponenta event banner

flatearthpoly

Подрезка многоугольника к мировым пределам

Синтаксис

[latf,lonf] = flatearthpoly(lat,lon)
[latf,lonf] = flatearthpoly(lat,lon,longitudeOrigin)

Описание

[latf,lonf] = flatearthpoly(lat,lon) отделки NaN- разделенные многоугольники, заданные векторами широты и долготы lat и lon до пределов [-180 180] в долготе и [-90 90] в широте, вставляя прямые сегменты вдоль +/- 180-градусных меридианов и у полюсов. Входы и выходы в градусах.

[latf,lonf] = flatearthpoly(lat,lon,longitudeOrigin) центрирует пределы долготы на долготе, заданной скалярной долготой longitudeOrigin.

Примеры

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

antarctica = shaperead('landareas', 'UseGeoCoords', true,...
    'Selector', {@(name) strcmp(name,'Antarctica'), 'Name'});
figure; plot(antarctica.Lon, antarctica.Lat); ylim([-100 -60])

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

[latf, lonf] = flatearthpoly(antarctica.Lat', antarctica.Lon');
figure; mapshow(lonf, latf, 'DisplayType', 'polygon')
ylim([-100 -60])
xlim([-200 200])
axis square 

Совет

Многоугольник, определенный lat и lon должны быть хорошо сформированы:

  • Границы не должны пересекаться.

  • Вершины внешних границ должны быть в порядке по часовой стрелке, а вершины внутренних границ должны быть в порядке против часовой стрелки, так что внутренняя часть многоугольника всегда находится справа от границы.

Дополнительные сведения см. в разделе Создание и отображение полигонов.

См. также

| | |

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