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

В этом примере показано, как удалить разрывы координат долготы на пересечении линий даты, которые могут спутать операции набора на многоугольниках. Это может произойти, когда точки с долготами около 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);

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

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

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

См. также

| | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте