projcrs
投影坐标参考系对象
说明
投影坐标参考系 (CRS) 提供将笛卡尔坐标系中的 x 和 y 地图坐标分配给物理位置的信息。投影坐标参考系由地理坐标参考系和若干参数组成,这些参数用于将坐标在地理坐标参考系之间进行转换。有关地理坐标参考系的更多信息,请参阅 geocrs。
创建对象
您可以通过多种方式创建一个投影 CRS 对象:
使用
readgeoraster导入栅格数据,然后查询返回的栅格参考对象的ProjectedCRS属性。使用
readgeotable函数导入矢量数据,然后查询返回的地理空间表中形状对象的ProjectedCRS属性。使用
shapeinfo函数获取 shapefile 的相关信息,然后查询返回结构中的CoordinateReferenceSystem字段。使用
projcrs函数(详见此处说明)。
描述
输入参量
投影 CRS 代码,指定为正整数、字符串标量或字符向量。默认情况下,projcrs 函数假定 code 参数是 EPSG 代码。要指定其他类型的代码,请使用 Authority 名称-值参数。
要参考 EPSG 或 ESRI 代码,请将此参数指定为正整数。要参考一个 IGNF 代码,请将此参数指定为字符串标量或字符向量。
有关有效的 EPSG、ESRI 和 IGNF 代码的信息,请参阅空间参考主页。
管理 CRS 定义的组织,指定为 "EPSG"、"ESRI" 或 "IGNF"。每个组织都维护着一份与特定 CRS 相关的代码列表。
若未指定权限,则 projcrs 函数将使用 "EPSG"。
知名文本 (WKT),指定为字符串标量或字符向量。您可以使用 WKT 1 或 WKT 2 标准来指定 WKT。
ProjectionParameters 属性中列出的参数采用 WKT 2 标准,即使您指定的文本使用 WKT 1 标准也是如此。
属性
CRS 名称,指定为字符串标量。
修改存储在 ProjectionParameters 属性中的投影参数值,可自动将该属性的值更改为 ""。若手动修改 Name 属性的值,则投影参数的变更不会自动改变该属性。
数据类型: string
此 属性 为只读。
地理坐标参考系 (CRS),以 geocrs 对象形式返回。地理坐标参考系由基准面(包括其椭球体)、本初子午线和角度测量单位构成。
此 属性 为只读。
长度单位,以字符串标量形式返回。可能的值包括 "meter" 和 "U.S. survey foot"。
数据类型: string
此 属性 为只读。
投影方法,以字符串标量形式返回。可能的值包括 "Lambert Conic Conformal (2SP)" 和 "Transverse Mercator"。
数据类型: string
投影参数,指定为一个 ProjectionParameters 对象。ProjectionParameters 对象中的参数采用 WKT 2 标准,即使提供的 wkt 参数使用 WKT 1 标准也是如此。
您可以使用点表示法访问和更改各个投影参数。例如,创建一个 projcrs 对象并访问其 LatitudeOfFalseOrigin 参数。
p = projcrs(26986); p.ProjectionParameters.LatitudeOfFalseOrigin
本表描述了常见的投影参数,包括兰伯特等角圆锥投影法和横轴墨卡托投影法所使用的参数。其他投影方法可能使用与所列参数不同的参数。其他投影方法的有效值范围可能比所列范围更窄。
| 参数 | 描述 |
|---|---|
EastingAtFalseOrigin | 在假原点处的东向坐标,指定为数字,单位由 |
FalseEasting | 虚假东向偏移量,指定为数字,单位遵循 |
FalseNorthing | 虚假北向偏移量,指定为数字,单位由 |
LatitudeOf1stStandardParallel | 第一标准纬线的纬度,以度为单位,指定为 [–90, 90] 范围内的数值。标准平行线是指在圆锥投影或圆柱投影中,所用的圆锥或圆柱与参考椭球体相交的平行线。 |
LatitudeOf2ndStandardParallel | 第二标准纬线的纬度,以度为单位,指定为 [–90, 90] 范围内的数值。标准平行线是指在圆锥投影或圆柱投影中,所用的圆锥或圆柱与参考椭球体相交的平行线。 |
LatitudeOfFalseOrigin | 假原点的纬度,单位为度,指定为 [–90, 90] 范围内的数值。投影 CRS 通常采用假原点,使得该坐标系内的所有坐标值均为正值。 |
LatitudeOfNaturalOrigin | 自然原点的纬度,以度为单位,数值范围为 [–90, 90]。自然原点是指未因虚假北向或东向偏移而位移的网格原点。 |
LongitudeOfFalseOrigin | 虚假原点的经度,单位为度,指定为 [–180, 180] 范围内的数值。投影 CRS 通常采用假原点,使得该坐标系内的所有坐标值均为正值。 |
LongitudeOfNaturalOrigin | 自然原点的经度,以度为单位,数值范围为 [–180, 180]。自然原点是指未因虚假北向或东向偏移而位移的网格原点。 |
NorthingAtFalseOrigin | 在假原点处的北向坐标,指定为数字,单位由 |
ScaleFactorAtNaturalOrigin | 自然原点的缩放因子,指定为无单位的数值,取值范围为 [0.9, 1.1]。自然原点是指未因虚假北向或东向偏移而位移的网格原点。投影 CRS 通常采用比例因子(接近 1 的数值)来平衡坐标系覆盖区域内的比例失真。 |
当您更改投影参数的值时,projcrs 对象会从与该对象关联的 WKT 中移除名称、使用区域和权限。因此,改变投影参数的值会自动将 Name 属性的值更改为 ""。
对象函数
示例
通过指定 EPSG 代码创建一个投影 CRS 对象。
p = projcrs(5325)
p =
projcrs with properties:
Name: "ISN2004 / Lambert 2004"
GeographicCRS: [1×1 geocrs]
ProjectionMethod: "Lambert Conic Conformal (2SP)"
LengthUnit: "meter"
ProjectionParameters: [1×1 map.crs.ProjectionParameters]
使用 Authority 名称-值参数,根据 ESRI 代码创建一个投影 CRS 对象。
p = projcrs(53026,"Authority","ESRI")
p =
projcrs with properties:
Name: "Sphere_Stereographic"
GeographicCRS: [1×1 geocrs]
ProjectionMethod: "Stereographic"
LengthUnit: "meter"
ProjectionParameters: [1×1 map.crs.ProjectionParameters]
使用 Authority 名称-值参数,根据 IGNF 代码创建一个投影 CRS 对象。使用字符串标量或字符向量指定代码。
p = projcrs("UTM39SW84","Authority","IGNF")
p =
projcrs with properties:
Name: "WGS84 UTM SUD FUSEAU 39"
GeographicCRS: [1×1 geocrs]
ProjectionMethod: "Transverse Mercator"
LengthUnit: "meter"
ProjectionParameters: [1×1 map.crs.ProjectionParameters]
使用 fileread 函数将 WKT 投影文件导入为字符向量。然后通过指定向量创建一个投影 CRS 对象。
wkt = fileread('MtWashington-ft.prj');
p = projcrs(wkt)p =
projcrs with properties:
Name: "UTM Zone 19, Northern Hemisphere"
GeographicCRS: [1×1 geocrs]
ProjectionMethod: "Transverse Mercator"
LengthUnit: "meter"
ProjectionParameters: [1×1 map.crs.ProjectionParameters]
使用 readgeoraster 函数将栅格数据导入为数组和地图参考对象。然后,通过查询参考对象的 ProjectedCRS 属性获取投影后的 CRS。
[Z,R] = readgeoraster("boston.tif");
R.ProjectedCRSans =
projcrs with properties:
Name: "NAD83 / Massachusetts Mainland"
GeographicCRS: [1×1 geocrs]
ProjectionMethod: "Lambert Conic Conformal (2SP)"
LengthUnit: "U.S. survey foot"
ProjectionParameters: [1×1 map.crs.ProjectionParameters]
或者,使用 georasterinfo 函数将同一文件的信息作为 RasterInfo 对象返回。然后,通过查询对象的 CoordinateReferenceSystem 属性获取投影后的 CRS。
info = georasterinfo("boston.tif");
info.CoordinateReferenceSystemans =
projcrs with properties:
Name: "NAD83 / Massachusetts Mainland"
GeographicCRS: [1×1 geocrs]
ProjectionMethod: "Lambert Conic Conformal (2SP)"
LengthUnit: "U.S. survey foot"
ProjectionParameters: [1×1 map.crs.ProjectionParameters]
通过创建一个 projcrs 对象并查询其 ProjectionParameters 属性,获取投影 CRS 的投影参数。
p = projcrs(32644); parameters = p.ProjectionParameters
parameters =
ProjectionParameters object with parameters:
LatitudeOfNaturalOrigin: 0
LongitudeOfNaturalOrigin: 81
ScaleFactorAtNaturalOrigin: 0.9996
FalseEasting: 500000
FalseNorthing: 0
使用点表示法查询单个投影参数。
p.ProjectionParameters.ScaleFactorAtNaturalOrigin
ans = 0.9996
使用点表示法更改投影参数的值 (自 R2023a 起)。
p.ProjectionParameters.LongitudeOfNaturalOrigin = 87;
提示
当使用 isequal 函数比较两个 ProjectionParameters 对象时,即使参数值相同,该函数仍可能返回 0(false)。相反,通过比较 projcrs 对象或直接比较参数值来比较 ProjectionParameters 对象。
版本历史记录
在 R2020b 中推出与以前的版本相比,在 R2026a 中 projcrs 对象的 ProjectionParameters 属性中存储的投影参数可能具有不同的名称。
例如,下表比较了在 R2025b 和 R2026a 版本中,基于 EPSG 代码 6808 创建的 projcrs 对象。AzimuthOfInitialLine 参数现已改为 AzimuthAtProjectionCentre,ScaleFactorOnInitialLine 参数现已改为 ScaleFactorAtProjectionCentre。
| R2025b | R2026a |
|---|---|
pcrs = projcrs(6808); pcrs.ProjectionParameters ans =
ProjectionParameters object with parameters:
LatitudeOfProjectionCentre: 45.9166666666667
LongitudeOfProjectionCentre: -123
AzimuthOfInitialLine: 295
AngleFromRectifiedToSkewGrid: 295
ScaleFactorOnInitialLine: 1
FalseEasting: 7000000
FalseNorthing: -3000000 | pcrs = projcrs(6808); pcrs.ProjectionParameters ans =
ProjectionParameters object with parameters:
LatitudeOfProjectionCentre: 45.9166666666667
LongitudeOfProjectionCentre: -123
AzimuthAtProjectionCentre: 295
AngleFromRectifiedToSkewGrid: 295
ScaleFactorAtProjectionCentre: 1
FalseEasting: 7000000
FalseNorthing: -3000000 |
在大多数情况下,此更改不会影响现有代码。如果您的代码依赖于已更新投影参数的名称,请更新代码以使用更新后的参数名称。
通过修改存储在 ProjectionParameters 属性中的对象参数,来改变投影 CRS 的投影参数值。通过设置 Name 属性来更改投影 CRS 的名称。
在之前的版本中,ProjectionParameters 和 Name 属性是只读的。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)