defaultm

Инициализируйте или сбросьте структуру проекции карты

Синтаксис

mstruct = defaultm(projid)
mstruct = defaultm(mstruct)

Описание

mstruct = defaultm(projid) инициализирует структуру проекции карты, где projid является строковым скаляром или вектором символов, который соответствует одному из значений в последнем столбце таблицы, отображаемой maps функция. Область выхода mstruct - проекционная структура карты. Это скалярная структура, поля которой соответствуют Map Свойств осей графика.

mstruct = defaultm(mstruct) проверяет существующую структуру проекции карты, устанавливает пустые свойства и корректирует зависимые свойства. The Origin, FLatLimit, FLonLimit, MapLatLimit, и MapLonLimit свойства могут быть скорректированы с учетом совместимости друг с другом и с MapProjection свойство и (в случае UTM или UPS) Zone свойство.

С defaultm, можно создать проекционную структуру карты (mstruct) которая содержит всю информацию, необходимую для проекта и отключения географических координат с помощью, projinv, projfwd, vfwdtran, или vinvtran не создавая оси и не используя MATLAB® графика. Соответствующие параметры в mstruct включают имя проекции, модули измерения угла, зону (для UTM или UPS), источник, аспект, ложное восточное положение, ложное северное положение и (для конических проекций) стандартную параллель или параллели. В очень редких случаях вам также может потребоваться настроить предел системы координат (FLatLimit и FLonLimit) или предел (MapLatLimit и MapLonLimit) свойства.

Вы должны сделать ровно два вызовов в defaultm чтобы настроить свои mstruct, с использованием следующей последовательности:

  1. Создайте предварительную версию, содержащую значения по умолчанию для выбранной проекции: mstruct = defaultm(projection);

  2. Присвойте соответствующие значения mstruct.angleunits, mstruct.zone, mstruct.origin, и т.д.

  3. Установите пустые свойства и скорректируйте взаимозависимые свойства по мере необходимости, чтобы доработать структуру проекции карты: mstruct = defaultm(mstruct);

Если вы установили поле prop1 от mstruct на value1, полевые prop2 на value2и так далее, затем следующая последовательность

mstruct = defaultm(projection);
mstruct.prop1 = value1;
mstruct.prop2 = value2;
...
mstruct = defaultm(mstruct);

дает точно такой же результат как и следующее:

f = figure;
ax = axesm(projection, prop1, value1, prop2, value2, ...);
mstruct = getm(ax);
close(f)
но он избегает использования графики и более эффективен.

Примечание

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

mstruct.angleunits = 'radians';

Необходимо также использовать значения в радианах при присвоении любых угловых свойств (таких как mstruct.origin, mstruct.parallels, mstruct.maplatlimit, mstruct.maplonlimit, и т.д.).

Смотрите раздел Mapping Toolbox™ User's Guide о работе в UTM без отображаемой карты для получения информации и примера использования defaultm в сочетании с UTM.

Примеры

свернуть все

Создайте пустую проекционную структуру карты для проекции Mercator:

mstruct = defaultm('mercator')
mstruct = 
     mapprojection: 'mercator'
              zone: []
        angleunits: 'degrees'
            aspect: 'normal'
      falseeasting: []
     falsenorthing: []
       fixedorient: []
             geoid: [1 0]
       maplatlimit: []
       maplonlimit: []
      mapparallels: 0
        nparallels: 1
            origin: []
       scalefactor: []
           trimlat: [-86 86]
           trimlon: [-180 180]
             frame: []
             ffill: 100
        fedgecolor: [0 0 0]
        ffacecolor: 'none'
         flatlimit: []
        flinewidth: 2
         flonlimit: []
              grid: []
         galtitude: Inf
            gcolor: [0 0 0]
        glinestyle: ':'
        glinewidth: 0.5000
    mlineexception: []
         mlinefill: 100
        mlinelimit: []
     mlinelocation: []
      mlinevisible: 'on'
    plineexception: []
         plinefill: 100
        plinelimit: []
     plinelocation: []
      plinevisible: 'on'
         fontangle: 'normal'
         fontcolor: [0 0 0]
          fontname: 'helvetica'
          fontsize: 9
         fontunits: 'points'
        fontweight: 'normal'
       labelformat: 'compass'
     labelrotation: 'off'
        labelunits: []
     meridianlabel: []
    mlabellocation: []
    mlabelparallel: []
       mlabelround: 0
     parallellabel: []
    plabellocation: []
    plabelmeridian: []
       plabelround: 0

Теперь смените источник карты на [0 90 0], и заполните параметры проекции по умолчанию соответственно:

mstruct.origin = [0 90 0];
mstruct = defaultm(mstruct)
mstruct = 
     mapprojection: 'mercator'
              zone: []
        angleunits: 'degrees'
            aspect: 'normal'
      falseeasting: 0
     falsenorthing: 0
       fixedorient: []
             geoid: [1 0]
       maplatlimit: [-86 86]
       maplonlimit: [-90 270]
      mapparallels: 0
        nparallels: 1
            origin: [0 90 0]
       scalefactor: 1
           trimlat: [-86 86]
           trimlon: [-180 180]
             frame: 'off'
             ffill: 100
        fedgecolor: [0 0 0]
        ffacecolor: 'none'
         flatlimit: [-86 86]
        flinewidth: 2
         flonlimit: [-180 180]
              grid: 'off'
         galtitude: Inf
            gcolor: [0 0 0]
        glinestyle: ':'
        glinewidth: 0.5
    mlineexception: []
         mlinefill: 100
        mlinelimit: []
     mlinelocation: 30
      mlinevisible: 'on'
    plineexception: []
         plinefill: 100
        plinelimit: []
     plinelocation: 15
      plinevisible: 'on'
         fontangle: 'normal'
         fontcolor: [0 0 0]
          fontname: 'Helvetica'
          fontsize: 10
         fontunits: 'points'
        fontweight: 'normal'
       labelformat: 'compass'
     labelrotation: 'off'
        labelunits: 'degrees'
     meridianlabel: 'off'
    mlabellocation: 30
    mlabelparallel: 86
       mlabelround: 0
     parallellabel: 'off'
    plabellocation: 15
    plabelmeridian: -90
       plabelround: 0

В этом примере показано, как выполнить те же проекционные расчеты, которые выполняются в командах отображения Mapping Toolbox путем вызова defaultm и projfwd функций.

Создайте пустую проекционную структуру карты для синусоидальной проекции, используя defaultm функция. Функция возвращает mstruct .

mstruct = defaultm('sinusoid');

Установите пределы карты для mstruct . Чтобы заполнить поля структуры проекции карты и убедиться, что эффекты настроек свойств правильно реализованы, вызовите defaultm второй раз.

mstruct.maplonlimit = [-150 -30];
mstruct.geoid = referenceEllipsoid('grs80','kilometers');
mstruct = defaultm(mstruct);

Загрузите данные береговой линии и обрезайте их до пределов карты.

load coastlines
[latt,lont] = maptriml(coastlat,coastlon, ...
     mstruct.maplatlimit,mstruct.maplonlimit);

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

[x,y] = projfwd(mstruct,latt,lont);
figure
plot(x,y)
axis equal

Figure contains an axes. The axes contains an object of type line.

См. также

| | | |

Представлено до R2006a