exponenta event banner

Удаление разрывов координат долготы при пересечениях линий дат

В этом примере показано, как удалить разрывы координат долготы при пересечениях линий даты, что может привести к путанице при выполнении заданных операций с многоугольниками. Это может произойти, когда точки с долготой около 180 градусов соединяются с точками с долготой около -180 градусов, как это может быть для восточной Сибири и Антарктиды, а также для небольших кругов и других объектов пятен. Подготовка географических данных для использования с polybool или для отрисовки фрагмента вырезать полигоны в строке даты с помощью flatearthpoly функция. flatearthpoly возвращает многоугольник с точками, вставленными для следования по линии даты вверх к полюсу, пересечения долгот на полюсе и возврата к линии даты, пересекающейся вдоль другого края линии даты.

Примечание.Отображение функций панели инструментов позволяет автоматически вырезать и обрезать географические данные, если это требуется проекцией карты. Использовать flatearthpoly только при выполнении заданных операций над многоугольниками.

Создайте ортогональный вид Земли и постройте на нем график береговых линий.

axesm ortho
setm(gca,'Origin', [60 170]); framem on; gridm on
load coastlines
plotm(coastlat,coastlon)

Figure contains an axes. The axes contains 4 objects of type patch, line.

Создайте небольшой круг, который охватывает Северный полюс и окрашивают его в желтый цвет.

[latc,lonc] = scircle1(75,45,30);
patchm(latc,lonc,'y')

Figure contains an axes. The axes contains 5 objects of type patch, line.

Выровнять малый круг с помощью flatearthpoly функция.

[latf,lonf] = flatearthpoly(latc,lonc);

Постройте график только что созданной окружности выреза в виде пурпурной линии.

plotm(latf,lonf,'m')

Figure contains an axes. The axes contains 6 objects of type patch, line.

Создайте вторую маленькую окружность, не включающую полюс.

[latc1 lonc1] = scircle1(20, 170, 30);

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

[latf1,lonf1] = flatearthpoly(latc1,lonc1);
plotm(latf1,lonf1,'r')

Figure contains an axes. The axes contains 7 objects of type patch, line.

См. также

| | |

Связанные темы