在不显示地图的情况下使用 UTM
您可以使用 defaultm 函数设置 UTM,以在不生成地图显示的情况下计算坐标。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
或者,使用 projcrs 对象设置一个 UTM 坐标系。要创建该对象,请指定一个 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