campos

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

Описание

Установите положение

campos(g,lat,lon) устанавливает широту и долготу камеры для заданного географического глобуса.

пример

campos(g,lat,lon,height) устанавливает широту, долготу и эллипсоидальную высоту камеры. Если вы хотите задать только высоту камеры, используйте camheight вместо этого функция.

Установите режим

campos(g,'auto') устанавливает положение камеры в автоматический режим, позволяя географическому глобусу определять широту и долготу камеры на основе нанесенных на график данных. Режим по умолчанию является автоматическим при создании географического глобуса. Если изменить положение камеры с помощью мыши, то режим переключается на автоматический. Чтобы управлять режимом для высоты камеры, используйте camheight вместо этого функция.

пример

campos(g,'manual') устанавливает положение камеры в ручной режим, указывая, что географический глобус сохраняет широту и долготу камеры при изменении нанесенных на график данных. Если вы измените положение камеры, используя campos function, затем режим переключается на ручной.

Положение запроса

campos(g) отображает широту, долготу и эллипсоидальную высоту камеры в виде трехэлементного вектора.

пример

[latOut,lonOut,heightOut] = campos(___) устанавливает положение или режим, а затем возвращает широту, долготу и высоту камеры. Вернуть положение камеры можно с помощью любого из предыдущих синтаксисов.

Примеры

свернуть все

Создайте географический глобус. Задайте широту и долготу Эйфелевой башни и задайте высоту, которая на 400 метров выше WGS84 эталонного эллипсоида. Используйте эти значения для перемещения камеры.

uif = uifigure;
g = geoglobe(uif);

lat = 48.8584;
lon = 2.2945;
h = 400;
campos(g,lat,lon,h)

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

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

uif = uifigure;
g = geoglobe(uif);

Bird's-eye view of Hawaii

Запросите широту, долготу и эллипсоидальную высоту камеры и присвойте каждую переменной.

[camlat,camlon,camh] = campos(g)
camlat =

   18.1781


camlon =

 -155.9297


camh =

   6.6664e+04

Запросите заголовок, тангаж и углы крена камеры и присвойте каждый переменной.

heading = camheading(g)
pitch = campitch(g)
roll = camroll(g)
heading =

   16.7613


pitch =

  -24.1507


roll =

  359.9977

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

uif2 = uifigure;
g2 = geoglobe(uif2);
campos(g2,camlat,camlon,camh)
camheading(g2,heading)
campitch(g2,pitch)
camroll(g2,roll)

Сохраните положение и курс, тангаж и углы крена камеры, установив режим камеры на ручной. Если вы не устанавливаете режим камеры в ручной, то поле зрения камеры сбрасывается при построении новых данных.

Импортируйте образец маршрута по дорогам в Массачусетсе используя gpxread функция. Создать географический глобус с дорожной картой и без данных о местности. Сохраните настройки основной карты и местности при помощи hold функция. Затем перейдите в район недалеко от Восточного Массачусетса, используя мышь.

track = gpxread('sample_tracks.gpx','Index',2);
lat = track.Latitude;
lon = track.Longitude;
height = track.Elevation;

uif = uifigure;
g = geoglobe(uif,'Basemap','streets','Terrain','none');
hold(g,'on')

Map of an area around Eastern Massachusetts with labeled cities and roads

Установите режим камеры в ручной режим и постройте график данных. Обратите внимание, что положение камеры не меняется.

campos(g,'manual')
camheight(g,'manual')
camheading(g,'manual')
campitch(g,'manual')
camroll(g,'manual')
geoplot3(g,lat,lon,height,'LineWidth',3)

The same map with a blue line plotted along several roads

Входные параметры

свернуть все

Географический глобус, заданный как GeographicGlobe объект.[1]

Геодезическая широта камеры, указанная в виде числового скаляра в область значений [-90, 90] степеней.

Геодезическая долгота камеры, указанная как числовой скаляр в область значений [-360, 360].

Эллипсоидальная высота камеры, заданная как числовой скаляр в метрах. Объекты географического глобуса используют WGS84 эталонный эллипсоид. Для получения дополнительной информации об эллипсоидальной высоте смотрите Найти эллипсоидальную высоту с ортометрической высоты.

Если вы задаете высоту так, чтобы камера была на уровне с или ниже местности, то campos функция устанавливает высоту значения на один метр над местностью.

Выходные аргументы

свернуть все

Геодезическая широта камеры, возвращенная как числовой скаляр в степени.

Геодезическая долгота камеры, возвращенная как числовой скаляр в степени.

Эллипсоидальная высота камеры, возвращаемая как числовой скаляр в метрах. Объекты географического глобуса используют WGS84 эталонный эллипсоид. Для получения дополнительной информации об эллипсоидальной высоте смотрите Найти эллипсоидальную высоту с ортометрической высоты.

Введенный в R2020b

[1] Выравнивание контуров и меток областей является представлением функции, предоставляемой поставщиками данных, и не подразумевает одобрения MathWorks®.