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

Можно настроить UTM для вычисления координат без создания отображения карты, используя defaultm функция. The 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 смотрите реестр EPSG. Проверьте, что 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

См. также

| | | |