Интерактивный выбор местоположений

Можно использовать функции Mapping Toolbox™ и GUI для взаимодействия с картами, оба в mapview и на рисунках, созданных с помощью axesm. В этом разделе описываются две полезные функции графического входа, inputm и gcpmap. inputm функция (аналогичная MATLAB® ginput функция) позволяет вам получить положение широты-долготы клика мыши. gcpmap функция (аналог функции MATLAB get(gca,'CurrentPoint')) возвращает текущее положение мыши, также в широте и долготе.

Исследовать inputm следующими командами, которые отображают оси карты с помощью ее сетки и затем запрашивают три клика мыши, местоположения которых хранятся как географические координаты в переменной points. Затем plotm графики функций точек, которые вы кликнули, как красные маркеры. Отображение, которое вы видите, зависит от выбранных точек:

axesm sinusoid
framem on; gridm on
points=inputm(3)
points =
  -41.7177 -145.0293
    7.9211   -0.5332
   38.5492  149.2237
plotm(points,'r*')

Примечание

Если вы кликните вне систему координат карты, inputm возвращает допустимую, но неправильную широту и долготу, даже если указанная точка отключена от карты.

Одна из причин, по которой вы можете захотеть вручную идентифицировать точки на карте, состоит в том, чтобы в интерактивном режиме исследовать, сколько искажений имеет проекция карты в заданных местоположениях. Например, вы можете отправить данные, полученные с inputm в distortcalc функция, которая вычисляет площади и угловые искажения в любом месте на отображаемых осях карты. Если вы делаете это с помощью points Переменная, результаты предыдущих трех кликов мыши следующие:

[areascale,angledef] = distortcalc(points(1,1),points(1,2))
areascale =
    1.0000
angledef =
    85.9284
[areascale,angledef] = distortcalc(points(2,1),points(2,2))
areascale =
    1.0000
angledef =
    3.1143
[areascale,angledef] = distortcalc(points(3,1),points(3,2))
areascale =
    1.0000
angledef =
    76.0623

Это указывает, что проекция тока (синусоидальная) имеет свойство равной площади, но показывает переменное угловое искажение по карте, меньше около экватора и больше около полюсов.

См. также

|

Похожие темы