Можно настроить 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