Работа в UTM без отображенной карты

Можно настроить UTM, чтобы вычислить координаты, не генерируя отображение карты, с помощью функции defaultm . utmzone и функции utmgeoid помогают вам выбрать зону и соответствующий эллипсоид. В этом примере вы генерируете данные о координате UTM для местоположения в Нью-Йорке, с помощью той точки, чтобы задать саму проекцию.

Задайте местоположение в Нью-Йорке.

p1 = [40.7,-74.0];

Получите зону UTM для этой точки.

z1 = utmzone(p1)
z1 = 
'18T'

Получите предложенный вектор эллипсоида и имя для этой зоны.

[ellipsoid,estr] = utmgeoid(z1)
ellipsoid = 1×2
106 ×

    6.3782    0.0000

estr = 
'clarke66'

Настройте систему координат UTM на основе этой информации.

utmstruct = defaultm('utm');
utmstruct.zone = '18T';
utmstruct.geoid = ellipsoid;
utmstruct = defaultm(utmstruct)
utmstruct = struct with fields:
     mapprojection: 'utm'
              zone: '18T'
        angleunits: 'degrees'
            aspect: 'normal'
     falsenorthing: 0
      falseeasting: 500000
       fixedorient: []
             geoid: [6.3782e+06 0.0823]
       maplatlimit: [40 48]
       maplonlimit: [-78 -72]
      mapparallels: []
        nparallels: 0
            origin: [0 -75 0]
       scalefactor: 0.9996
           trimlat: [-80 84]
           trimlon: [-180 180]
             frame: 'off'
             ffill: 100
        fedgecolor: [0.1500 0.1500 0.1500]
        ffacecolor: 'none'
         flatlimit: [40 48]
        flinewidth: 2
         flonlimit: [-3 3]
              grid: 'off'
         galtitude: Inf
            gcolor: [0.1500 0.1500 0.1500]
        glinestyle: ':'
        glinewidth: 0.5000
    mlineexception: []
         mlinefill: 100
        mlinelimit: []
     mlinelocation: 1
      mlinevisible: 'on'
    plineexception: []
         plinefill: 100
        plinelimit: []
     plinelocation: 1
      plinevisible: 'on'
         fontangle: 'normal'
         fontcolor: [0.1500 0.1500 0.1500]
          fontname: 'Helvetica'
          fontsize: 10
         fontunits: 'points'
        fontweight: 'normal'
       labelformat: 'compass'
     labelrotation: 'off'
        labelunits: 'degrees'
     meridianlabel: 'off'
    mlabellocation: 1
    mlabelparallel: 48
       mlabelround: 0
     parallellabel: 'off'
    plabellocation: 1
    plabelmeridian: -78
       plabelround: 0

Вычислите декартовы координаты без отображения карты.

[x,y] = mfwdtran(utmstruct,p1(1),p1(2))
x = 5.8448e+05
y = 4.5057e+06

Вычислите зональные пределы (широта и пределы долготы) для имени зоны, возвращенного ранее, с помощью функции utmzone.

utmzone('18T')
ans = 1×4

    40    48   -78   -72

Поэтому можно вызвать utmzone рекурсивно, чтобы получить пределы зоны UTM, в которой падает местоположение точки.

[zonelats,zonelons] = utmzone(utmzone(40.7,-74.0))
zonelats = 1×2

    40    48

zonelons = 1×2

   -78   -72