第10章 空间参考的管理.docx
- 文档编号:6168148
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:79
- 大小:296.89KB
第10章 空间参考的管理.docx
《第10章 空间参考的管理.docx》由会员分享,可在线阅读,更多相关《第10章 空间参考的管理.docx(79页珍藏版)》请在冰豆网上搜索。
第10章空间参考的管理
第十章:
空间参考的管理
一个数据组的特征表现了真实世界的物体。
在数据组里的每个特征的相对位置反映了那一特征在真实世界里的位置。
每一个特征的位置通过坐标系定义。
在精度和纬度中被测量的地理坐标系统,是基于地球上类似球体的图形。
为了促进地图上或电脑屏幕上特征的二维空间显示,依靠地图投影将空间数据从三维空间地理坐标系转换到二维空间坐标系。
许多不同的坐标系统用来进行数据收集和储存。
如果你使用的数据来自于不同的数据源,那么,不同的数据组可能以不同的坐标系为基础。
你能使用在AO中空间参考物体在同一坐标系中观察你的数据。
10.1空间参考对象模型
spatial-reference:
空间参考是三种类型的坐标系的基础,这三种类型的坐标系分别是:
投影坐标系、地理坐标系和自定义坐标系(未知的)。
Geographic-Coordinate-System:
地理坐标系定义一个使用经度和纬度描述地面特征位置的坐标系。
Unknown-Coordinate-System:
当坐标系未知或不可用时自定义坐标系被使用
ProjectedCoordinateSystem:
一个投影坐标系对象包括一个地理坐标系、一个投影、一个投影参数集和一个线性单位。
Datum:
datum表现了一个关于经纬坐标的参考系,并且通过一个球状体和相对于地球中心的球状体的位置被定义。
Projection:
投影对象指定了数学变换在地理坐标和平面坐标之间转换。
AngularUnit:
角单位指明了被用于地理坐标系的测量单位。
Parameter:
参数可以被用于定义和纠正一个投影坐标系的特定属性的值。
Spheroid:
球状体模拟了地球表面的近似形状。
Prime-Meridian:
本初子午线对象指明了在地理坐标系中的零经度坐标的直线。
LinearUnit:
线性单位指明了被用于投影坐标系的测量单位。
transformation:
变换通过空间参考和几何变换物体被使用。
Geo-Transformation:
地理变换类指明通过所有地理变换被使用的方法。
Abridged-Molodensky-Transformation:
abridgedMolodensky变换使用三个参数(dX,dY,dZ)在地理坐标系(datums)之间转换。
Coordinate-Frame-Transformation:
框幅坐标变换对象使用七个参数(dX,dY,dZ,rX,rY,rZ,dS)在地理坐标系(datums)之间变换。
Geocentric-Translation:
以地球为中心平移变换使用三个参数(dX,dY,dZ)在地理坐标系(datums)之间变换。
Longitude-Rotation:
经度旋转变换通过经度值的一个平移在两个本初子午线之间转换。
Molodensky-Transformation:
Molodensky变换使用三个参数(dX,dY,dZ)在地理坐标系(datums)之间转换。
PositionVector-Transformation:
位置矢量(Bursa-Wolf)变换使用七个参数(dX,dY,dZ,rX,rY,rZ,dS)在地理坐标系(datums)之间变换。
SpatialReference-Environment:
空间参考环境生成预先指定的空间参考物体。
Composite-Geo-Transformation:
复合变换允许你在通过定义两个或更多的地理变换物体和它们的相关方向的两个地理坐标系之间设置一个变换path。
Grid-Transformation:
栅格变换使用在文件中控制点的一个栅格或矩阵来完成精确坐标变换。
NADCONTransformation:
NADCON变换是一个基于栅格的变换方法,在NAD1927和NAD1983地理坐标系之间转换地理坐标。
HARNTransformation:
HARN变换是一个高精度基于栅格的变换方法,在NAD1983地理坐标系和HARNreadjustments(被用于美国)之间转换地理坐标。
Spatial-Reference-Info:
空间参考信息重新得到关于一个空间参考物体的信息。
ESRISpatial-Reference-Info:
ESRI空间参考信息提供输入组成部分到空间参考物体和从空间参考物体输出组成部分的方法。
Geo-Transformation-OperationSet:
地理变换操作集存储地理变换操作的一个集合(一个地理变换对象和它的方向)。
10.2空间参考简介
定义一个特征数据组的部分是它的空间参考或空间参考系。
一个坐标系统包括作为测量单位、使用的地面模型,有时是数据如何投影的一些信息,
一个地理坐标系通过一个数据、一个测量的单位角(通常是角度或梯度)和一个本初子午线定义。
投影坐标系由一个测量的线性单位(通常是米或英尺)、一个地图投影组成,特定的参数通过地图投影和一个地理坐标系使用。
很多分析方法和数据用来设计一个二维空间或平面坐标。
三维空间地理数据通过地图投影被转换到平面坐标。
地图投影是一组通过精度和纬度将三维地面描述转换到平面坐标(x、y)的数学等式。
从三维空间转换到二维空间会造成变形――不管是图形、区域、距离还是方向都能受到影响。
地图投影通过整平地球表面是引起的变形减少到最小。
然而,图形变形减少到最小的投影是以增加远处的变形为代价的。
因此,确保你的数据映射的选择适合于你的目的,因为不同的映射适用于不同应用。
10.2.1空间参考物体模型的结构
当数据坐标系统被显示并且它们怎样被储存的时候,AO提供一组被设计的分类,允许用户控制和操纵。
对于大多数的开发者,有三个主要的AO组成部分去帮助管理坐标系:
投影坐标系、地理坐标系和空间参考坐标系。
对于需要另外生成自定义甚至习惯坐标系的灵活性的高级开发者,下面的成员是有用的:
Projection,Datum,AngularUnit,LinearUnit,Spheroid,PrimeMeridian,和theGeoTransformation。
空间参考物体之间的关系在物体模型图表中被显示。
物体能够被放在三个组中:
utility,core和transformation。
成员和接口中有用的组是那些用于生成空间参考物体或提供关于它们的信息的组。
它们包括SpatialReferenceEnvironment,ESRISpatialReferenceInfo和SpatialReferenceInfo。
核心组由被用于表现坐标系组成部分的物体组成。
它们是:
ProjectedCoordinateSystem,Projection,GeographicCoordinateSystem,AngularUnit,LinearUnit,Datum,Spheroid,Parameter和PrimeMeridian。
注:
空间参考模型是以一个通过PetrotechnicalOpenSoftwareCorporation(POSC)公司、简化组成坐标系统的不同组成部分的石油公司和煤气公司开发的一个模型为基础的。
一个相关的组织,EuropeanPetroleumSurveyGroup(EPSG),已经编译了一大组坐标系,而且对象需要定义它们。
每一个物体具有唯一的整数码或ID。
例如,当WGS1984资料是6326时,国际计量的代码是9001等等。
一个坐标系具有一个唯一的ID。
注:
在空间参考模型里,整数码被认为是一个FactoryCode。
注:
为了确保EPSG文件的最新版总是可用的,EPSG请求只有一个网站传送该文件。
该文件在网站www.epsg.org中有三种不同的格式可使用。
1087页
物体模型图表也阐明在核心空间参考物体之间的关系。
例如,当一个地理坐标系物体同时具有一个Datum属性和一个PrimeMeridian属性时,一个Datum物体有一个球状的属性。
地理变换物体是所有在地理系统中处理坐标系变换的物体,也被认为是datum变换或者datum移动。
本章从有用物体的讨论开始,接下来是核心物体,最后是变换物体。
10.2.2元数据
如果你的特征分类被包含在特征数据组里,然后在那个数据组里的所有特征分类必须具有相同的空间参考。
依赖于你的数据源,AO将会读出并且给予任何伴随的元数据,该元数据包含那些数据的坐标系上的信息,而且将设置那些特征数据组的空间参考属性或适当地分类这些特征。
•一个图形文件可能有一个相应的坐标系元数据文件(.prj)。
•一个ArcInfo图层包含在图层工作区里的PRG文件里的坐标系信息。
•ArcSDE图层储存在ArcSDE图层表中区域内的坐标系元数据。
•VPF应该有它的已经在它的数据库中建立的投影信息。
ArcGIS将给予那些元数据,而且VPF数据将被投影。
既然VPF是一个普遍的只读数据源,设定坐标系是不可能的。
•给CAD数据赋一个空间参考是可能的,但是这只能在CAD特征数据组(非特征分类)或CAD绘制标准中完成。
一个投影(.prj)文件必须保存在磁盘中。
只要这一文件与CAD文件具有相同的名字并且保存在相同的文件夹中,ArcGIS将承认它。
•在个人地理数据库中的特征分类总有一个外部空间参考,该参考可能是一个未知坐标系。
•对于基于一个栅格或三角格网的光栅数据组,相关的PRJ文件也将被读出。
如果元数据没有提出或不正确,那么AO将检查坐标范围和数据的大小。
如果数据的坐标是在角度单位中,而且在标准地理坐标的范围里,那么它将联合具有一个“假定地理坐标系”的特征分类。
这也意味着没有关于基于这些地理坐标的datum的信息是已知的。
事实上,AO将设置datum为NAD1927,这对于基于北美建立的数据通常是好的。
1088页
如果数据的坐标除了度数以外以单位表现,例如米或英尺,那么AO将设置特征分类的空间参考属性为一个“未知坐标系”。
这维持坐标的精度信息,以便几何操作具有一致的容差。
定义一个图层的空间参考元数据是一个最好在ArcCatalog完成的数据管理工作。
在ArcMap应用中,选择一个个别图层并设置其空间参考属性是不可能的。
然而,规划的完成是可能的。
有一个AO组成部分提供一个对话框,允许浏览AO提供的所有可用的投影和地理坐标系。
ISpatialReferenceDialog:
IUnknownProvidesaccesstomembersthatcontroltheSpatialReferenceDialog.
给成员提供参考,控制空间参考对话。
DoModalCreate(inhasXY:
Boolean,in
HasZ:
Boolean,inHasM:
Boolean,in
hParent:
Long):
ISpatialReferencePromptstheusertodefineanewspatialreference.
提示用户定义一个新的空间参考。
DoModalEdit(ininputSpatialReference:
ISpatialReference,inhasXY:
Boolean,
inHasZ:
Boolean,inHasM:
Boolean,
incoordPageReadOnly:
Boolean,in
domainPageReadOnly:
Boolean,in
hParent:
Long):
ISpatialReferenceDisplays/editsthepropertiesofthegivenspatialreference.
显示/编辑给定空间参考的属性。
下面的代码示范了怎样有计划地调用对话框并且使用它例示一个空间参考物体。
DimpDialogAsISpatialReferenceDialog
SetpDialog=NewSpatialReferenceDialog
DimpSpatialReferenceAsISpatialReference
'OncethedialogboxpopsupwecanbrowseforthePRJfilethatwewant.
SetpSpatialReference=pDialog.DoModalCreate(True,False,False,0)
当设置特征图层组件类的空间参考属性是可能的时候,这将对地图图层的绘制没有任何的影响。
该属性被用于支持当前on-the-fly投影到特征图层并且真正的在AO内部使用的地图知识。
如果你想要重新设定或不考虑特征图层的空间参考,你需要使用IgeoDatasetSchemaEdit接口。
该接口有两种方法,CanAlterSpatialReference和AlterSpatialReference。
下面的代码示范了怎样获得在IgeoDatasetSchemaEdit接口的处理方法。
'ThiscodesampletakesalayerandresetsitsSpatialReference
'tobetheOSGB1936GeographicCoordinateSystem.
DimpMxDocAsIMxDocument
SetpMxDoc=ThisDocument
DimpMapAsIMap
SetpMap=pMxDoc.FocusMap
DimpLayerAsIFeatureLayer
SetpLayer=pMap.Layer(0)
DimpFeatureClassAsIFeatureClass
SetpFeatureClass=pLayer.FeatureClass
'QIforthegeodatasetforthelayersfeatureclass
DimpGeoDatasetAsIGeoDataset
SetpGeoDataset=pFeatureClass
'QIfortheGeoDatasetSchemaEditfromthegeodataset
DimpGeoDatasetEditAsIGeoDatasetSchemaEdit
SetpGeoDatasetEdit=pGeoDataset
'Testifwecanalterthespatialreference,ifwecan,thewe
'createafactoryanduseittocreateageographiccoordinatesystem.
If(pGeoDatasetEdit.CanAlterSpatialReference=True)Then
DimpSpatRefFactAsISpatialReferenceFactory2
SetpSpatRefFact=NewSpatialReferenceEnvironment
DimpGeoCoordSysAsIGeographicCoordinateSystem
SetpGeoCoordSys=_
pSpatRefFact.CreateGeographicCoordinateSystem(esriSRGeoCS_OSGB1936)
'NowalterthelayersSR
pGeoDatasetEdit.AlterSpatialReferencepgeocoorsys
EndIf
'andforcearefresh
pMxDoc.ActiveView.Refresh
注:
在ArcCatalog中新的空间参考对话框。
1089页
为了获得图层的空间参考信息,你将需要IgeoDataset接口的QI和从该接口获得的空间参考物体。
DimpMxDocAsIMxDocument
SetpMxDoc=ThisDocument
DimpMapAsIMap
SetpMap=pMxDoc.FocusMap
DimpLayerAsIFeatureLayer
SetpLayer=pMap.Layer(0)
DimpGeoDatasetAsIGeoDataset
DimpSpatialReferenceAsISpatialReference
SetpGeoDataset=pLayer'QIforthegeodatasetfromthelayer
SetpSpatialReference=pGeoDataset.SpatialReference
MsgBoxpSpatialReference.Name
在Imap接口上的空间参考属性定义在屏幕上显示图层的方法。
当每一个图层的坐标系被认为是源坐标系时,这被认为是你的目标坐标系。
1090页
设置或改变地图上的目标坐标系将改变你的图层如何被显示,如同每一个图层从源坐标系被转换到目标坐标系。
对于每一个显示更新,在可见范围内所有特征的坐标被读出并且被转换。
这有一个在地图上如何设置空间参考属性的例子。
DimpSpatialReferenceAsIProjectedCoordinateSystem
DimpDialogAsISpatialReferenceDialog
SetpDialog=NewSpatialReferenceDialog
SetpSpatialReference=pDialog.DoModalCreate(True,False,False,0)
DimpMapAsIMap
DimpMxDocAsIMxDocument
SetpMxDoc=ThisDocument
SetpMap=pMxDoc.FocusMap
SetpMap.SpatialReference=pSpatialReference
pMxDoc.ActiveView.Refresh
10.3SpatialReferenceInfo抽象类
可能被认为有用的三个空间参考分类是SpatialReferenceInfo,ESRISpatialReferenceInfo和SpatialReferenceEnvironment。
正如它们的名字它们提供的接口建议,它们参与空间参考物体的生成,而且也提供关于那些物体的信息。
SpatialReferenceInfo抽象类支持IspatialReferenceInfo,它定义空间参考物体模型所有组成部分的公共属性。
例如,Datum组件类、地理坐标系统和投影组件类es全部实现这个接口。
这是通过类型遗传被获得的――IspatialReference接口从IspatialReferenceInfo遗传得到。
ISpatialReferenceInfo:
IUnknownISpatialReferenceInfointerfacedefinespropertiescommontoallcomponentsofaspatialreferencesystem.
ISpatialReferenceInfo接口定义空间参考系统所有组成部分的公共属性。
Abbreviation:
StringTheabbreviatednameofthisspatialreferencecomponent.
该空间参考组成部分的缩写。
Alias:
StringThealiasofthisspatialreferencecomponent.
该空间参考组成部分的别名。
FactoryCode:
LongReturnsthefactorycodeofthespatialreference
返回空间参考的生成代码。
Name:
StringThenameofthisspatialreferencecomponent.
该空间参考组成部分的名称。
Remarks:
StringThecommentstringofthisspatialreferencecomponent.
该空间参考组成部分的注释行。
IspatialReferenceInfo接口提供属性,例如空间参考物体的FactoryCode,Name和Alias。
例如,数据的这一类型可能从一个投影物体被提供。
FactoryCode:
43033
Name:
"LambertAzimuthalEqualArea"
Alias:
"ZenithalEqualArea"
Usage:
"Maintainssmallarea,goodforuptoahemisphere,oftenusedfor
polardata.
Classification:
Azimuthal/Planar,EqualArea"
Remarks:
"Supportsbothspheresandspheroids(datums).Projection
parametersarecentralmeridianandlatitudeoforigin"
所示的代码指出了空间参考信息的显示。
注意到因为Iprojection是从IspatialReferenceInfo继承得到的,所以不需要QI。
DimpSpatRefFactAsISpatialReferenceFactory
SetpSpatRefFact=NewSpatialReferenceEnvironment
DimpProjectionAsIProjection
SetpProjection=_
pSpatRefFact.CreateProjection(esriSRProjection_LambertAzimuthal)'43033
Debug.PrintpProjection.Abbreviation
Debug.PrintpProjection.Alias
Debug.PrintpProjection.FactoryCode
Debug.PrintpProjection.Name
Debug.PrintpProjection.Remarks
注:
空间参考信息提供关于任何空间参考物体的信息。
注:
如前面提到的,空间参考模型基于POSC模型并且使用EPSG完整代码去唯一识别坐标系和它们的组成部分。
在AO中,这个代码数字作为FactoryCode被提到。
它主要被用于生成具有在IspatialReferenceFactory接口中的有效方法的预先确定的坐标系。
FactoryCode的值能够从IspatialReferenceInfo接口中被获得。
10.4ESRISpatialReferenceInfo抽象类
ESRISpatialReferenceInfo抽象类定义IESRISpatialReference接口,它通过除了SpatialReferenceEnvironment独立物体以外的所有空间参考物体被实现。
该接口提供空间参考物体或它们组成部分的输入和输出。
IESRISpatialReference:
IUnknownIESRISpatialReferenceimplementsimport/exportoperationscomponentsofaspa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第10章 空间参考的管理 10 空间 参考 管理