Отобразите навигационные дорожки

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

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

Чтобы выполнить это с помощью функций Mapping Toolbox™, можно отобразить оси карты с проекцией Mercator, выбрать соответствующие пределы широты и долготы карты, чтобы изолировать интересующую область, построить график данных о береговой линии и интерактивно выбрать путевые точки с inputm функция. track функция сгенерирует точки для соединения этих путевых точек, которые затем могут отображаться с plotm.

Для рисунка предположим, что путевые точки известны (или были собраны с помощью inputm). Чтобы узнать об использовании inputm, см. Выбор местоположений в интерактивном режиме, или inputm на страницах с описанием Mapping Toolbox.

waypoints = [36 -5; 36 -2; 38 5; 38 11; 35 13; 33 30; 31.5 32]
waypoints =

	36.0000   -5.0000
	36.0000   -2.0000
	38.0000    5.0000
	38.0000   11.0000
	35.0000   13.0000
	33.0000   30.0000
	31.5000   32.0000
load coastlines
axesm('MapProjection','mercator',...
'MapLatLimit',[30 47],'MapLonLimit',[-10 37])
framem
plotm(coastlat,coastlon)

[lttrk,lntrk] = track(waypoints);
plotm(lttrk,lntrk,'r')

Хотя эти сегменты дорожки являются прямыми линиями на проекции Меркатора, они являются кривыми на других:

Такие сегменты дорожки называются ногами. Каждая из этих ног может быть описана в терминах курса и расстояния. Функция legs будет принимать путевые точки в формате навигационной дорожки и возвращать курс и расстояние, необходимое для каждой ноги. Помните, порядок точек в этом формате определяет направление движения. Поэтому курсы вычисляются от каждой путевой точки до ее преемника, а не наоборот.

[courses,distances] = legs(waypoints)
courses =

	90.0000
	70.3132
	90.0000
	151.8186
	98.0776
	131.5684

distances =

	145.6231
	356.2117
	283.6839
	204.2073
	854.0092
	135.6415

Поскольку это навигационная функция, курсы все в степенях, и расстояния в морских милях. С этих расстояний могут быть вычислены скорости, необходимые для прибытия в Порт-Саид в заданное время. Движение в южном направлении допускается к входу в канал только один раз в день, поэтому эта информация может быть экономически значимой, поскольку излишне высокие скорости могут привести к высоким затратам топлива.

Похожие темы