exponenta event banner

Графические шкалы

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

Элементы графического масштаба используются для обеспечения индикации размера даже чаще, чем вставки. Это линейчатые объекты, которые показывают расстояния на земле в номинальном масштабе проекции. Вы можете использовать scaleruler для добавления графического масштаба к текущей карте. Вы можете проверить и изменить scaleruler настройки с использованием getm и setm. Можно также переместить графический масштаб в новое положение, перетащив его базовую линию.

Использовать usamap построить карту Техаса и окружающих штатов в виде заполненных многоугольников.

states = shaperead('usastatehi.shp', 'UseGeoCoords', true);
figure
usamap('Texas')
faceColors = makesymbolspec('Polygon',...
    {'INDEX', [1 numel(states)], ...
    'FaceColor', polcmap(numel(states))});
geoshow(states,'DisplayType', 'polygon', ...
    'SymbolSpec', faceColors)

Поскольку polcmap рандомизирует цвета патчей, ваш дисплей может выглядеть по-другому.

Добавьте графический масштаб по умолчанию, а затем переместите его в новое расположение.

scaleruler on
setm(handlem('scaleruler1'), ...
    'XLoc',-6.2e5,'YLoc',3.1e6, ...
    'MajorTick',0:200:600)

Единицы измерения scaleruler по умолчанию - километры. Обратите внимание, что handlem принимает ключевое слово 'scaleruler' или 'scaleruler1' для первого scaleruler, 'scaleruler2' для второго и т.д. При наличии нескольких scaleruler на текущих осях, указывая ключевое слово 'scaleruler' возвращает вектор дескрипторов.

Вернуть scaleruler в качестве Group с использованием handlem и проверить его свойства с помощью getm.

s = handlem('scaleruler');
getm(s)
ans = struct with fields:
            Azimuth: 0
           Children: []
              Color: [0 0 0]
          FontAngle: 'normal'
           FontName: 'Helvetica'
           FontSize: 9
          FontUnits: 'points'
         FontWeight: 'normal'
              Label: ''
                Lat: 29.6479
               Long: -101.7263
          LineWidth: 0.5000
          MajorTick: [0 200 400 600]
     MajorTickLabel: {4x1 cell}
    MajorTickLength: 20
          MinorTick: [0 25 50 75 100]
     MinorTickLabel: '100'
    MinorTickLength: 12.5000
             Radius: 'earth'
         RulerStyle: 'ruler'
            TickDir: 'up'
           TickMode: 'manual'
              Units: 'km'
               XLoc: -620000
               YLoc: 3100000
               ZLoc: []

Изменение размера шрифта scaleruler до 8 баллов.

setm(s,'fontsize',8)

Разместите вторую графическую шкалу, эту в единицах морских миль.

scaleruler('units','nm')

Измените свойства засечки второго графического масштаба.

setm(handlem('scaleruler2'), 'YLoc', 3.0e6, ...
    'MajorTick', 0:100:300,...
    'MinorTick', 0:25:50, 'TickDir', 'down', ...
    'MajorTickLength', km2nm(25),...
    'MinorTickLength', km2nm(12.5))

Проведите эксперимент с двумя другими доступными стилями линеек.

setm(handlem('scaleruler1'), 'RulerStyle', 'lines')
setm(handlem('scaleruler2'), 'RulerStyle', 'patches')