Функции 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.2237plotm(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Это указывает на то, что текущая проекция (синусоидальная) имеет свойство равной площади, но проявляет переменное угловое искажение по карте, меньше вблизи экватора и больше около полюсов.