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

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

Графические элементы шкалы используются, чтобы обеспечивать признаки относительно размера еще более часто, чем вставки. Это подобные линейке объекты, которые показывают расстояния на земле в номинальной шкале проекции. Можно использовать функцию 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' возвращает вектор указателей.

Получите указатель на hggroup scaleruler использование 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')