Клип многоугольника к мировым границам
[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
должны быть хорошо сформированы:
Контуры не должны пересекаться.
Вершины внешних контуров должны быть в порядке часовой стрелки, а вершины внутренних контуров должны быть в порядке против часовой стрелки, так что внутренняя часть многоугольника всегда находится справа от контура.
Для получения дополнительной информации см. раздел «Создание и отображение многоугольников».