exponenta event banner

defaultm

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

Синтаксис

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

Описание

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

mstruct = defaultm(mstruct) проверяет существующую структуру проекции карты, устанавливает пустые свойства и корректирует зависимые свойства. 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и т.д.).

Для получения информации и примера использования см. раздел «Отображение Toolbox™ Руководство пользователя» по работе в UTM без отображаемой карты. defaultm в сочетании с UTM.

Примеры

свернуть все

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

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

В этом примере показано, как выполнять те же вычисления проекции, которые выполняются в командах отображения панели инструментов сопоставления, путем вызова 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