Можно настроить UTM, чтобы вычислить координаты, не генерируя отображение карты, с помощью defaultm
функция. utmzone
и utmgeoid
функции помогают вам выбрать зону и соответствующий эллипсоид. В этом примере вы генерируете данные о координате UTM для местоположения в Нью-Йорке, с помощью той точки, чтобы задать саму проекцию.
Задайте местоположение в Нью-Йорке. Получите зону UTM для этой точки.
lat = 40.7; lon = -74.0; z = utmzone(lat,lon)
z = '18T'
Получите предложенный вектор эллипсоида и имя для этой зоны.
[ellipsoid,estr] = utmgeoid(z)
ellipsoid = 1×2
106 ×
6.3782 0.0000
estr = 'clarke66'
Настройте систему координат UTM на основе этой информации.
utmstruct = defaultm('utm');
utmstruct.zone = z;
utmstruct.geoid = ellipsoid;
utmstruct = defaultm(utmstruct);
Преобразуйте координаты без отображения карты.
[x,y] = projfwd(utmstruct,lat,lon)
x = 5.8448e+05
y = 4.5057e+06
Вычислите зональные пределы (широта и пределы долготы) для заданной зоны при помощи utmzone
функция. Можно также вызвать utmzone
рекурсивно, чтобы получить пределы зоны UTM, в которой падает местоположение точки.
utmzone('18T')
ans = 1×4
40 48 -78 -72
[zonelats,zonelons] = utmzone(utmzone(40.7,-74.0))
zonelats = 1×2
40 48
zonelons = 1×2
-78 -72
В качестве альтернативы настройте систему координат UTM с помощью projcrs
объект. Чтобы создать объект, задайте код EPSG. Для получения информации о кодах EPSG см. http://www.epsg.org/. Проверьте что projcrs
объект имеет правильное имя и эллипсоид. Затем преобразуйте координаты.
p = projcrs(26718); p.Name
ans = "NAD27 / UTM zone 18N"
p.GeographicCRS.Spheroid.Name
ans = 'Clarke 1866'
[xp,yp] = projfwd(p,lat,lon)
xp = 5.8448e+05
yp = 4.5057e+06