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

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

Смотрите также

| | | |