ARCGIS坐标
1 ArcGIS坐标系定义和转换
网上有关坐标系和坐标转换的文章很多,大家可搜索了学习一下,我推荐下面两篇文章供参考:
《坐标系统和投影变换在桌面产品中的应用》介绍了坐标系的一些基本概念,并结合ArcGIS进行了说明。
《ArcGIS坐标系统文件》介绍了ArcGIS坐标系名称的解析方法。
ArcGIS中的坐标系有两套:Geographics coordinate system(地理坐标系、大地坐标系,经纬度表达)和Projected coordinate system(投影坐标系,直角坐标系)。
通过在ArcCatalog中右键点击一个Feature class、Feature dataset、Raster dataset和Raster Catalog,在“Property”的“XY Coordinate Sytstem”中设置其坐标系。如果要进行转换,需通过ArcToolBox的“Data Management Tools”的“Projections and Transformations”系列工具进行。
在同一个Datum(大地基准面)内的坐标转换是严密的,如在北京54的经纬度和直角坐标之间的转换是可在ArcGIS中设置源坐标系和目标坐标系来直接转换。如果要在不同Datum间进行转换,则需要设置转换参数,通常高精度的转换需要7参数,也即设置Geographics Transformation。比如将北京54坐标转换成WGS84坐标,需要设置转换参数。
虽然我国没有公布北京54、西安80与WGS84之间的转换7参数,但ArcGIS可以在导入数据的时候通过设置目标坐标系,从而实现坐标转换,而且不用输入7参数,试验了一下,应该时默认参数为0。但根据网上的文章
http://www.gissky.cn/blog.asp?ID=125,《ArcGIS坐标转换到底有多准?》,这些转换误差比较大。真正的坐标转换精度还需要进一步验证。
在用ArcToolBox中的转换工具进行坐标转换时,如果跨datum,则必须输入Transformation参数,从而保证转换精度。
2坐标系开发相关
ArcEngine定义了北京54六度带和WGS84坐标系,可进行之间的坐标转换,但没有定义西安坐标系和北京54的三度带。所以不能直接使用ArcEngine预定义的坐标系。
安装ArcGIS Desktop后,ArcGIS根目录下会有Coordinate Systems目录,是一系列prj文件定义的坐标系。ArcGISDesktop使用的就是这些坐标系,所以如果要支持足够多的坐标系,需要在ArcEngine中读取这些文件,而不要用预定义的坐标系枚举变量。
ArcEngine中坐标系的创建通过ISpatialReferenceFactory,比如:
ISpatialReferenceFactory srFactory = new SpatialReferenceEnvironmentClass();
//创建WGS1984地理坐标系
IGeographicCoordinateSystem gcs =
srFactory.CreateGeographicCoordinateSystem( (int)esriSRGeoCSType.esriSRGeoCS_WGS1984);
//创建Xian 1980地理坐标系
ISpatialReference sr =
srFactory.CreateESRISpatialReferenceFromPRJFile(@\Systems\\Geographic Coordinate Systems\\Asia\\Xian 1980.prj\
//创建北京1954GK_18N投影坐标系
IProjectedCoordinateSystem pcs =
srFactory.CreateProjectedCoordinateSystem((int)esriSRProjCSType.esriSRProjCS_Beijing1954GK_18N);
进行Geographics Transformation则通过IGeoTransformation接口,该接口可以指定源坐标系和目标坐标系,然后基于点进行datum不同时的转换,实现该接口的类包括:
AbridgedMolodenskyTransformation
CompositeGeoTransformation
CoordinateFrameTransformation
CoordinateTransformation
GeocentricTranslation
HARNTransformation
LongitudeRotationTransformation
MolodenskyBadekasTransformation
MolodenskyTransformation
NADCONTransformation
NTv2Transformation
PositionVectorTransformation
等,其中CoordinateFrameTransformation就是常用的布尔莎7参数转换类。
具体转换坐标,可通过IGeometry的Project和ProjectEx函数,分别对应不需要IGeoTransformation和需要IGeoTransformation。Project也可实现不同datum的坐标系的转换,但需要设置IGeoTransformationOperationSet。
geometry.SpatialReference = srcSR;
if (geoTrans != null)
geometry.ProjectEx(dstSR, esriTransformDirection.esriTransformForward, geoTrans, false, 0, 0);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库ArcGIS坐标系定义和转换在线全文阅读。
相关推荐: