ArcGIS空间参考
- 格式:docx
- 大小:518.72 KB
- 文档页数:18
1.1 空间参考空间参考(Spatial Reference)是GIS数据的骨骼框架,能够将我们的数据定位到相应的位置,为地图中的每一点提供准确的坐标。
在同一个地图上显示的地图数据的空间参考必须是一致的,如果两个图层的空间参考不一致,往往会导致两幅地图无法正确拼合,因此开发一个GIS系统时,为数据选择正确的空间参考非常重要。
在ArcGIS 中,每个数据集都具有一个坐标系,该坐标系用于将数据集与通用坐标框架(如地图)内的其他地理数据图层集成。
通过坐标系可在地图中集成数据集,以及执行各种集成的分析操作,例如叠加不同的源和坐标系中的数据图层。
1.1.1 相关知识1.1.1.1大地水准面大地水准面是由静止海水面并向大陆延伸所形成的不规则的封闭曲面。
它是重力等位面,即物体沿该面运动时,重力不做功(如水在这个面上是不会流动的)。
因为地球的质量并非在各个点均匀分布,因此重力的方向也会相应发生变化,所以大地水准面的形状是不规则的,如下图:1.1.1.2地球椭球体由定义可以知大地水准面的形状也是不规则的,仍不能用简单的数学公式表示,为了测量成果的计算和制图的需要,人们选用一个同大地水准面相近的可以用数学方法来表达的椭球体来代替,简称地球椭球体,它是一个规则的曲面,是测量和制图的基础,因地球椭球体是人们选定的跟大地水准面很接近的规则的曲面,所以地球椭球体就可以有多个,地球椭球体是用长半轴、短半轴和扁率来表示的。
下表列出了一些最常见的参考椭球:1.1.1.3基准面基准面是在特定区域内与地球表面极为吻合的椭球体。
椭球体表面上的点与地球表面上的特定位置相匹配,也就是对椭球体进行定位,该点也被称作基准面的原点。
原点的坐标是固定的,所有其他点由其计算获得。
基准面的坐标系原点往往距地心有一定偏移(有的也在地心,如WGS1984),如西安80的基准面和北京54的基准面.因为椭球体通过定位以便能更好的拟合不同的地区,所以同一个椭球体可以拟合好几个基准面.因为原点不同,所以不同的基准面上,同一个点的坐标是不相同的,这点我们应该清楚.下面以华盛顿州贝灵厄姆市为例来说明。
ARCGIS空间分析实习指导书(三)——三维分析部分本章内容:练习一:在地形表面上叠加影像练习二:污染物在蓄水层中的可视化练习三:土壤污染及甲状腺癌发病率的可视化练习四:创建TIN表面表示地形学习三维分析的最佳办法就是在使用中学习.在本教程的这个练习中,您将学习:用ArcCatalog查找、预览三维数据在ArcScene中添加数据察看数据的三维属性从二维要素与表面中创建新的三维要素从点数据源中创建新的栅格表面从现有要素数据中创建TIN表面为了能够顺利使用本教程,用户的机器上必须安装了ArcGIS及三维扩展模块,并且在本机或网络上安装有本教程所需要的数据.如未在教程指定的默认目录中找到练习数据,请与系统管理员联系,以获取正确的数据路径.拷贝教程数据首先将教程数据拷贝到本机。
您将使用ArcCatalog浏览、拷贝数据。
1.击开始->程序->ArcGIS中的ArcCatalog8。
ArcCatalog允许用户对数据进行查找与管理。
ArcCatalog左边的窗口称之为“目录树”.ArcCatalog右边的窗口显示在目录树中选中数据的内容。
2.点击location下拉列表框,输入教程数据的安装路径\arcgis\Arctutor,并按回车.此时,目录树中的ArcTutor文件夹为当前选中的项。
你可以使用Contents标签显示其中的内容。
3.右击3DAnalyst文件夹,选择“复制”4.右击本地将拷入数据的文件夹,选择“粘贴”。
此时文件夹拷贝到了本地驱动器中。
下面,在ArcCatalog的目录树中连接3DAnalyst 文件夹进行连接。
5.在本地驱动器中点击3DAnalyst文件夹,并将其拖至ArcCatalog的目录树的最顶层结点中。
此时将在目录树中出现一个本地数据的文件夹连接。
练习一:在地形表面上叠加影像在地形表面上叠加遥感影像,有助于对影像模式及其与地形的相关性的理解。
假如你是加州Death峡谷的地质学家。
空间分析具体案例应用专业:资源环境与城乡规划管理学号:109072010024 姓名:王秀君实验类型:综合性实验实验目的:进一步掌握常用工具应用所学的ArcGIS技术,掌握空间分析能力的运用,解决实际工作中遇到的问题。
实验内容:1、琅岐岛3D视图显示2、超市商业区位选址3、土地规划利用(一)琅岐岛3D视图显示实验类型:综合性实验实验目的:进一步掌握常用工具所学的ARCGIS技术,掌握空间分析能力的应用,解决实际工作中遇到的问题实验内容:琅岐岛3D视图显示四、实验步骤1.将TAB格式转为SHP格式打开Mapinfo,选择“表”下的“转出”,弹出窗口,指定要转换格式的文件及输出路径,将马尾岛屿.tab、马尾等高线.TAB、马尾等深线.TAB转为Island.mif、Contour.mif、isolate.mif。
然后,打开Arc Catalog,将Island.mif、Contour.mif、isolate.mif转换为shape格式。
点击ok,完成转换。
2.定义投影右击Island.shp,指定其投影为Projected Coordinate Systems—Gauss Kruger—Beijing 1954—Beijing 1954 GK Zone 20投影,利用Import将投影导入其他图层。
如图所示:3.卫片配准在ArcMap中,先将Island、Contour、isolate图层调入,然后在将卫片LQ调入。
调用Georeferencing工具,选择Fit to Display命令,使卫片处于屏幕正中央,然后进行配准,如图所示。
然后用Rectify命令,将定义好的投影保存。
配准后注意保存好,如图所示:4.合并等高线、等深线两个图层建立Contour和isolate的公共字段,在ArcMap中,选择图层,Open Attribute Table,建立公共字段Height,并赋值,删除多余字段,然后打开ArcToolBox利用Append工具合并Contour与isolate图层。
在ArcGIS中进行空间配准在利用ArcGIS进行数字化,或者把栅格图像加载到已有坐标系的地图中时,首先的工作就是进行地图的空间配准。
对栅格图像进行配准时,可以用Georeferencing工具。
对已有GIS图与其它坐标系或者地图进行配准时,可以利用Spatial Adjustment工具。
1.利用Georeferencing工具配准栅格图像在ArcGIS里加载一幅栅格图,可以是照片或者是扫描图片。
如果在工具栏里没有显示Georeferencing工具条,则在工具栏处右击,点中Georeferencing。
在加载了栅格图后,Georeferencing工具条被激活。
如果加载了多幅图片,则在layer处选择要进行配准的图像。
点击Georeferencing工具条里的Georeferencing,取消auto adjust选项。
可以在Transformation里选择进行空间变换时所采用的方法。
然后在Georeferencing工具条里点击add control point命令添加控制点。
利用Georeferencing进行空间配准的原理即为栅格图上的特定点输入新的正确坐标。
此时点中某一点后可以有两种方式设置新的坐标:(1)点击某一点后,直接移动位置,在新的要配准的点上再次点击,则在两点之间建立连接。
(2)点击某一点后,再用鼠标右键点中它,在弹出的对话框里,点击输入X,Y值,然后可直接输入此点的绝对坐标。
为了使空间配准后尽量使配准的结果精确,可多设几个控制点(尽量围绕关注的地方平均设置)。
在设置好以后,可以点击Georeferencing工具条里的auto adjust或者update display进行配准。
此时可以看到配准的结果。
如果不满意,还可以对局部控制点进行调整,点中后直接手动即可。
完成配准后利用Georeferencing工具条中的update Georeferencing或者rectify命令保存配准结果。
ArcGIS的网络分析http://blog。
sina。
com。
cn 2007年09月11日23:08 Geoinformatics标签:校园生活ArcGIS的网络分析分为两类:传输网络(Network Analyst)和效用网络(Utility Network Ana lyst).一、从应用上来考虑:1。
传输网络常用于道路、地铁等交通网络分析。
特点:在传输网络中,汽车和火车都是可以自由移动的物体,具有主观选择方向的能力。
传输网络解决的问题有:A。
计算点与点之间的最佳距离,时间最短或者距离最短,最佳路径能够绕开事先设置的障碍物B。
可以进行多点的物流派送,能够按照规定时间规划送货路径,也能够自由调整各点的顺序,也会绕开障碍物C。
寻找最近的一个或者多个设施点D.确定一个或者多个设施点的服务区,绘制服务区范围的条件可以是多个,例如,同时列出3分钟、6分钟、9分钟的服务区E。
绘制起点-终点距离矩阵2.效用网络常用于水、电、气等管网的连通性分析。
特点:在效用网络中,水、电、气通过管道和线路输送给消费者,水、电、气被动地由高压向低压输送,不能主观选择方向.效用网络解决的问题有:A.寻找连通的/不连通的管线B。
上/下游追踪C.寻找环路D。
寻找通路E。
爆管分析二、从技术上来考虑:传输网络(Network Analyst)基于Network Dataset效用网络(Utility Network Analyst)基于Geometric Network 它们的区别可以参考下面的表格:ArcGIS网络分析[转]—-一、目的网络分析是GIS空间分析的重要组成部分,它的主要内容包括:l 寻找最佳行进路线,如:找出两地通达的最佳路径。
l 确定最近的公共设施,如:引导最近的救护车到事故地点。
l 创建服务区域,如:确定某零售店的服务区域,从而查明区域内的顾客数等等.通过对本实习的学习,应达到以下几个目的:1、加深对网络分析基本原理、方法的认识;2、熟练掌握ARCGIS网络分析的技术方法.3、结合实际、掌握利用网络分析方法解决地学空间分析问题的能力。
使用ArcGIS进行空间校正的步骤(矢量数据)空间校正(Spatial Adjustment)——数据类型为矢量数据问题背景:现有一个按jpg图勾画好边界的矢量文件,坐标系未知,校正后要为此文件加上正确的坐标系。
已知有四点确定的坐标数据(平面坐标,坐标点不属于边界拐点,但在jpg图上可以找到),坐标点文件的坐标系是地理坐标系。
解决思路:1、坐标点文件有误,先修正。
2、利用四个已知坐标点,将jpg图像配准。
3、使用ArcGIS中的空间校正工具,参照jpg图像校正矢量文件。
操作步骤:1、所给坐标点文件的坐标系是地理坐标系,然而坐标是投影坐标,因此先将坐标点文件的坐标系修改正确。
打开ArcToolbox/数据管理工具/投影与变换/定义投影,将该点文件的坐标系修改成下图的坐标系。
(因为处于三度分带下的41带,中央经线为123°)2、由于点文件的横坐标没有带号,而之前上的图坐标系均加上了带号,因此重投影成有带号的坐标系。
在ArcToolbox中同路径下找到变换投影工具。
按照下图所示选择输出的坐标系。
3、加载栅格图,进行图像配准。
加载矢量图文件。
下面进行空间校正。
4、在编辑器中对该矢量图采用“开始编辑”的命令,再点开这一菜单栏,找到下面的“更多编辑工具”,调出空间校正工具条。
如果工具条是灰色的,说明没有点击“开始编辑”。
5、可以先选择一下校正的数据。
点击“设置校正数据”,指定是校正图层中的全部要素还是图层中所选的要素。
不选择也可以,默认指定校正图层中的所选要素。
6、选择下图所示的图标,开始选择链接点。
在矢量图上选择可捕捉、确切的点,再点击栅格图中对应位置,点尽可能分布均匀,数量尽可能多。
7、建立所有链接之后,点击“校正(Adjust)”的按钮即可。
如果建立完链接之后发现这个按钮是灰色的,可以试试重新设置一下校正数据。
8、最后在编辑器中点击“保存编辑”。
空间分析(一)——一般空间分析部分预备知识:ESRI ARCGIS的空间分析软件提供了强大的空间分析工具,可以帮助你解决各种各样的空间问题。
例如,你可以创建数据,如山体阴影,识别数据集之间的空间关系,确定适宜地址,或寻找一个区域的最佳路径。
·获取派生信息用ARCGIS空间分析模块从你的数据创建有用信息,如创建山体阴影以提供显示的地形背景,通过计算坡度来识别陡峭的坡面,确定某位置到每条道路的距离或方向,或计算某区域内的人口密度。
·识别空间关系分析空间数据集的关系。
例如查找白血病的爆发与到核电站间的距离之间是否存在某中关系,或防卫朝向对一个植物种类的生存是否重要。
·寻找适宜位置通过对数据进行查询或创建一副适宜性地图,你可以找到适宜性的地址。
如,查询数据集以查找海拔在3000英尺以上、距离一个城镇五英里以内的区域,或通过合并数据集创建一副适宜性地图,以检查每个位置的适宜性。
·计算通行成本计算穿越某区域所需的积累成本,然后寻找由A到B点的最低成本路径。
实习内容:练习1.显示和浏览空间数据练习2.为一所新学校选址练习3.寻找一条通往新学校的替代路径练习场景概况:美国的V ermont州Stowe镇正处于一个人口大量增长的过程之中。
人口统计显示,增长的主要原因是大量有孩子的家庭为了享受附近大娱乐设施而移居本地。
当地决定新建一所学校来缓解人口增长带来的学校紧张状况。
作为一名城市规划师,你将负责新学校的选址工作。
空间分析模块提供了解决此类空间问题的分析工具集。
本章内容将教会你使用部分空间分析工具集,同时帮助你打下牢固的基础,以次为起点,你可以开始思考解决自己所面临的空间问题。
开始本章练习之前,假设你已经安装了空间分析扩展模块。
练习需要的数据包含在空间分析模块的安装盘中(在安装练习数据的驱动器上,缺省安装路径是ArcGIS\ArcTutor\Spatial)。
V ermont州为本书提供了练习数据集。
ArcGIS影像配准与空间配准地图配准可分为影像配准和空间配准。
影像配准的对象是raster图,譬如TIFF图。
配准后的图可以保存为ESRI GRID, TIFF,或ERDAS IMAGINE格式。
空间配准(Spatial Adjustment)是对矢量数据配准。
一、影像配准在ArcGIS中配准:1.打开ArcMap,增加Georeferencing工具条。
2. 把需要进行纠正的影像增加到ArcMap中,会发现Georeferencing工具条中的工具被激活。
在view/data frame properties的coordinate properties中选择坐标系。
如果是大地(投影)坐标系选择predefined中的Projected coordinate system,坐标单位一般为米。
如果是地理坐标系(坐标用经纬度表示)表示则选择Geographic coordinate system。
3.纠正前可以去掉"auto adjust"前的勾。
在校正中我们需要知道一些特殊点的坐标。
如公里网格的交点,我们从图中均匀的取几个点,不少于7个。
在实际中,这些点要能够均匀分布在图中。
4.首先将Georeferencing工具条的Georeferencing菜单下Auto Adjust不选择。
5.在Georeferencing工具条上,点击Add Control Point按钮。
6.使用该工具在扫描图上精确到找一个控制点点击,然后鼠标右击,Input X and Y输入该点实际的坐标位置。
采用地理坐标系时应输入经纬度,经纬度用小数表示,如110°30'30'应写成110.508(=110+30.5/60)。
7.用相同的方法,在影像上增加多个控制点,输入它们的实际坐标。
8.增加所有控制点后,在Georeferencing菜单下,点击Update Display。
ArcGIS的空间参考kikitaMaps
1.坐标系(CoordinateSystem)
主要提供了这个几种:地理坐标系或大地坐标系(GCS)、投影坐标系(PCS)、垂直坐标系(UCS)。
坐标系在这先不多说,以后有时间自己整理下。
2.分辨率(Resolution):x,y值的最小距离
分辨率值的单位与相关坐标系的单位相同。
默认分辨率值是0.0001 米(1/10 mm),或者为其等效值(以地图单位表示)。
具有较小(较精细)的 x,y 分辨率的要素坐标可以具有更多的精度位数。
但是,极小的 x,y分辨率可能会影响性能,因为使用了过多的磁盘空间以及更多的 I/O。
ESRI官方文档强烈建议,在大多数情况下使用默认的x,y分辨率,因为默认分辨率性能非常好并且可以适用于大多数坐标精度。
3.容差(Tolerance):
容差值为坐标之间的最小距离。
如果一个坐标在另一个坐标的容差值范围内,则会将二者视为同一位置。
默认容差是分辨率值的 10倍,大多数情况下推荐使用此设置。
解决ArcGIS坐标之惑:地理坐标系和投影坐标区别及常用操作一、基本概念坐标系(Coordinate System)的概念为:“In geometry, a coordinatesystem is a system which uses one or more numbers, or coordinates, to uniquelydetermine the position of a point or other geometric element on a manifold suchas Euclidean space”简单的说,有了坐标系,我们才能够用一个或多个“坐标值”来表达和确定空间位置。
没有坐标系,坐标值就无从谈起,也就无法描述空间位置。
在ArcGIS中,或者说在GIS中,我们遇到的坐标系一般有两种:1)地理坐标系(GeographicCoordinate System)2)投影坐标系(ProjectedCoordinate System)地理坐标系进行地图投影后就变成了投影坐标系。
地图投影(Map Projection)是按照一定的数学法则将地球椭球面上点的经维度坐标转换到平面上的直角坐标。
地图投影的理论知识请参考其他资料,此处不做叙述。
需要说明的是,也有将“坐标(CoordinateSystem)”称为“空间参考(Spatial Reference)”的情况,例如在ArcGIS中栅格数据的属性里面。
尽管投影是介绍坐标系的一个绕不开的重要内容。
但是投影和坐标系有本质区别。
坐标系是数据或地图的属性,而投影是坐标系的属性。
一个数据或一张地图一定有坐标系,而一个坐标系可以有投影也可以没投影。
只有投影坐标系才有投影,地理坐标系是没有投影的。
因此,一个数据或一张地图亦是可以有投影也可以没投影的。
当然,非要较真,把具有地理坐标系的数据显示在平面地图上肯定也有一个投影的过程。
严格来讲:我们只能说“数据或地图的坐标系”和“坐标系的投影”,而不能说“数据或地图的投影”。
ArcGIS基础学习思路整理学习资料:地理信息系统教程上的例题与操作步骤,地理信息系统导论上的习作与挑战任务,往届GIS大赛试题。
一、空间数据处理1.空间数据采集:(1)地理配准(2)空间校正2.空间数据编辑:(1)要素的编辑(2)创建要素(3)修改要素3.空间数据的拓扑处理:(1)拓扑创建(2)拓扑的验证(3)拓扑编辑(4)拓扑错误修改4.空间参考与变换:(1)空间参考与地图投影(2)投影变换(3)坐标问题5.地图制图:(1)地图制图输出(2)符号化与样式(3)掩模与制图表达二、空间数据分析1.矢量数据分析:(1)数据提取:裁剪,分割,筛选(2)统计分析:频数,汇总统计数据(3)缓冲区分析:建立缓冲区,多环缓冲区,点距离(4)叠置分析:相交,联合,融合,合并,标识,擦除,更新(5)泰森多边形2.栅格数据分析:(1)密度分析(2)距离分析(3)提取分析(4)局域分析(5)邻域分析3.地形表面分析:(1)用DEM进行制图(2)坡度坡向分析(3)表面曲率分析(4)提取破向坡度,水系河流4.视域流域水文分析:(1)视域分析(2)流域分析:填洼,流向分析,计算水流长度,流量分析(3)河网分析:生成河网,河网矢量化,平滑河网,河流连接5.插值及重分类分析:(1)插值分析:克里金插值(2)重分类分析6.网络分析:(1)网络分析(2)最小耗费路径分析7.地统计学分析:8.Model Builder与空间建模:ArcGIS处理问题综合流程整理一、按照一定的条件选取事宜区域某一地区引进X型经济作物,该作物的生长环境需要满足一定的地形及气象条件。
现有该地区的地形及气象数据,请你根据X型作物的生长条件,为该地区进行X型作物适宜区分析相关信息说明如下:①数据中,dem为数字高程模型数据,gully.shp为主沟谷数据;climate.txt为气象观测表数据(包含坐标、温度/℃及降雨/ mm等)。
②dll中,DevComponents.DotNetBar2.DLL为工具控件库,IrisSkin2.DLL为皮肤控件库,titlerectangle.ssk为皮肤文件。
ArcGIS教程:空间参考和地理处理地理数据集的空间参考由以下各部分组成:•包含地图投影和基准面的坐标系•XY 分辨率、M 和 Z 分辨率和域(可选)•XY 容差、M 和 Z 容差(可选)这些空间参考属性对地理处理工具的性能和生成的结果具有重大影响。
•地理处理工具创建输出数据时,必须为该新建数据集指定空间参考。
•地理处理工具处理多个要素类中(如相交工具)或多个栅格中(如加权叠加工具)的要素时,必须将数据归入一个公共的空间参考才能计算出两个数据集内容之间的关系。
输出数据集的空间参考与进行处理的空间参考属于同一个空间参考。
也就是说,该工具将始终在输出数据集的空间参考中处理数据。
什么是默认输出空间参考?地理处理工具将根据以下逻辑来确定输出空间参考:•如果在某要素数据集中生成输出,则将使用该要素数据集的空间参考属性。
•如果输出的是一个独立的地理数据集(不位于任何要素数据集中),则空间参考属性将与输入地理数据集的空间参考属性相同。
1.如果输入的是视图区的某图层,则将使用该图层数据源的空间参考。
2.如果输入的是一列数据集(例如,相交工具),则将使用第一个输入数据集的空间参考。
3.如果该工具不具备输入数据集(例如,创建要素类、创建要素数据集和创建栅格目录),则最好选择一个坐标系,这样地理处理工具才能计算出其他空间参考属性(例如 XY 分辨率和容差)。
如何覆盖默认空间参考的属性下方列出的地理处理环境可用于覆盖以下默认的输出空间参考属性。
如果在某要素数据集中生成输出,则坐标系以及XY 属性和 Z 属性(除了包含 Z 值)都将始终使用该要素数据集的对应属性。
•坐标系•XY 容差•Z 容差•XY 分辨率•XY 域 - 对于 9.2 版以后的地理数据库的输出将忽略此值•输出包含 Z 值•默认输出 Z 值•Z 分辨率•Z 值域无论输出位于独立数据集中还是位于某要素数据集中,下列环境参数均可用:•输出含有 M 值•M 容差•M 分辨率•M 值域处理多个输入的工具(坐标系将影响工具的性能)处理多个输入的地理处理工具(例如分析工具箱或Spatial Analyst 工具箱)要求所有要素和栅格均位于一个公共的坐标系中以便计算空间关系。
1.1 空间参考空间参考(Spatial Reference)是GIS数据的骨骼框架,能够将我们的数据定位到相应的位置,为地图中的每一点提供准确的坐标。
在同一个地图上显示的地图数据的空间参考必须是一致的,如果两个图层的空间参考不一致,往往会导致两幅地图无法正确拼合,因此开发一个GIS系统时,为数据选择正确的空间参考非常重要。
在ArcGIS 中,每个数据集都具有一个坐标系,该坐标系用于将数据集与通用坐标框架(如地图)内的其他地理数据图层集成。
通过坐标系可在地图中集成数据集,以及执行各种集成的分析操作,例如叠加不同的源和坐标系中的数据图层。
1.1.1 相关知识1.1.1.1大地水准面大地水准面是由静止海水面并向大陆延伸所形成的不规则的封闭曲面。
它是重力等位面,即物体沿该面运动时,重力不做功(如水在这个面上是不会流动的)。
因为地球的质量并非在各个点均匀分布,因此重力的方向也会相应发生变化,所以大地水准面的形状是不规则的,如下图:1.1.1.2地球椭球体由定义可以知大地水准面的形状也是不规则的,仍不能用简单的数学公式表示,为了测量成果的计算和制图的需要,人们选用一个同大地水准面相近的可以用数学方法来表达的椭球体来代替,简称地球椭球体,它是一个规则的曲面,是测量和制图的基础,因地球椭球体是人们选定的跟大地水准面很接近的规则的曲面,所以地球椭球体就可以有多个,地球椭球体是用长半轴、短半轴和扁率来表示的。
下表列出了一些最常见的参考椭球:1.1.1.3基准面基准面是在特定区域内与地球表面极为吻合的椭球体。
椭球体表面上的点与地球表面上的特定位置相匹配,也就是对椭球体进行定位,该点也被称作基准面的原点。
原点的坐标是固定的,所有其他点由其计算获得。
基准面的坐标系原点往往距地心有一定偏移(有的也在地心,如WGS1984),如西安80的基准面和北京54的基准面.因为椭球体通过定位以便能更好的拟合不同的地区,所以同一个椭球体可以拟合好几个基准面.因为原点不同,所以不同的基准面上,同一个点的坐标是不相同的,这点我们应该清楚.下面以华盛顿州贝灵厄姆市为例来说明。
使用NAD27、NAD83 和WGS84 以十进制为单位比较贝灵厄姆的坐标。
显而易见,NAD83 和WGS84 表示的坐标几乎相同,但NAD27 表示的坐标则大不相同,这是因为所使用的基准面和旋转椭球体对地球基本形状的表示方式不同。
下图来自ArcGIS 说明了基准面是基于椭球体的:1.1.1.4地图投影简单的说地图投影就是把地球表面的任意点,利用一定数学法则,转换到地图平面上的理论和方法。
1.1.2 两种坐标系1.1.2.1地理坐标系地理坐标系也可称为真实世界的坐标系,是用于确定地物在地球上位置的坐标系,它用经纬度来表示地物的位置,经度和纬度是从地心到地球表面上某点的测量角,通常以度或百分度为单位来测量该角度。
下图将地球显示为具有经度和纬度值的地球。
地理坐标系(GCS) 是基于基准面的使用三维球面来定义地球上的位置,GCS 往往被误称为基准面,而基准面仅是GCS 的一部分,GCS 包括角度测量单位、本初子午线和基准面。
下图来自ArcGIS说明了了地理坐标系的组成:1.1.2.2投影坐标系投影坐标系是基于地理坐标系的,它使用基于X,Y值的坐标系统来描述地球上某个点所处的位置,可以这样认为投影坐标系=地理坐标系(如:北京54、西安80、WGS84)+投影方法(如:高斯-克吕格、Lambert投影、Mercator投影)+线性单位。
下图来自ArcGIS 说明了投影坐标系的组成:1.1.3 ArcGIS Engine对空间参考的支持ArcGIS Engine提供了一系列对象供开发者管理GIS系统的坐标系统。
对大部分开发者而言了解ProjectedCoordinateSystem,GeographicCoordinateSystem,SpatialReference Environment这三个组件类是非常有必要的,对于高级开发者而言,可能需要自定义坐标系统可以使用这些对象Projection,Datum,AngularUnit,Spheriod,PrimeMeridian和GeoTransformation等。
在ArcGIS中除了我们上面介绍的两种坐标系,还有一种称之为Unknown的坐标系,这种坐标系是当我们的数据没有坐标(jpg等文件)或者坐标文件丢失的时候ArcMap不能识别数据的投影信息而赋予的,在ArcGIS Engine 中下面三个类分别对应了三个坐标系:利用ArcGIS Engine创建一个坐标系或者基准面用的是SpatialReferenceEnvironmentClass类,该类实现了ISpatialReferenceFactory接口,该接口定义了创建坐标系,基准面等方法和属性,如下图:在利用ISpatialReferenceFactory创建坐标系的时候往往需要一个int类型的参数,这个int其实就是这些坐标系的代号,如我们熟悉的4326就是WGS1984,下面为部分截图:1.1.3.1同一基准面的坐标转换对于同一基准面,我们可以肯定一点就是同一位置经纬度坐标是一样的,而不同的就是计算成平面坐标的时候可能有所不同,因为算法不一样,在这里我只是将经纬度坐标转成平面的坐标。
private IPoint GetpProjectPoint(IPoint pPoint,bool pBool){ISpatialReferenceFactory pSpatialReferenceEnvironemnt = new SpatialReferenceEnvironment();ISpatialReference pFromSpatialReference = pSpatialReferenceEnvironemnt.CreateGeographicCoordinateSystem((int)esriSRGeo CS3Type.esriSRGeoCS_Xian1980);//西安80ISpatialReference pToSpatialReference = pSpatialReferenceEnvironemnt.CreateProjectedCoordinateSystem((int)esriSRProjC S4Type.esriSRProjCS_Xian1980_3_Degree_GK_Zone_34);//西安80if (pBool == true)//球面转平面{IGeometry pGeo = (IGeometry)pPoint;pGeo.SpatialReference = pFromSpatialReference;pGeo.Project(pToSpatialReference);return pPoint;}else//平面转球面{IGeometry pGeo = (IGeometry)pPoint;pGeo.SpatialReference = pToSpatialReference;pGeo.Project(pFromSpatialReference);return pPoint;}}1.1.3.2不同基准面的坐标转换通过前面的介绍,我们知道地球上同一位置的坐标在不同的基准面上是不一样的,而基准面是构成坐标系的一个部分,因为基准面在定位的时候牵扯到了相对地心的平移或旋转等,所以对于这样的转换我们无法直接进行,需要一个转换参数,而这些参数也是基于不同的模型的,常用的有三参数和7参数,三参数是比较简单的也是比较容易理解的,三参数是在两个基准面之间进行了X,Y,Z轴的平移,通过下面的图我们很清楚的看到三参数之间两个基准面的关系:如果知道了这三个平移的参数外加个基准面上的点,那么另外一个点的坐标就是而7参数的模型比较复杂,这种复杂的同时让精度大为提高,7参数不仅仅考虑了两个基准面之间的平移,还考虑了旋转外加一个比例因子(椭球体的大小可能不一样),从下面的图我们可以清楚看到这种关系:对于7参数,我们知道了平移三参数旋转三参数以及比例因子外加一个基准面上的坐标就可按照下面的公式求出另外一个基准面上的坐标:对于不同基准面之间的转换,ArcGIS Engine提供了一个用来控制转换参数的接口IGeoTransformation,该接口被以下类实现着每一个接口对应了一种转换方法,比如GeocentricTranslationClass类就实现了三参数,而CoordinateFrameTransformationClass类实现了7参数,要实现3参数或者7参数需要IGeometry2或更新接口的ProjectEx方法,下面我们用代码实现一个不同基准面之间的坐标转换。
publicvoid ProjectExExample(){ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();// ISpatialReference pFromCustom = pSpatialReferenceFactory.CreateESRISpatialReferenceFromPRJFile(@"E:\arcgis\Eng ine\zidingyi.prj");IPoint pFromPoint = new PointClass();pFromPoint.X = 518950.788;pFromPoint.Y = 4335923.97;IZAware pZAware = pFromPoint as IZAware;pZAware.ZAware = true;pFromPoint.Z = 958.4791;// ((IGeometry)pFromPoint).SpatialReference = pFromCustom;//自定义投影WGS84下的北京6度19带。
((IGeometry)pFromPoint).SpatialReference = CreateCustomProjectedCoordinateSystem();//目标投影IProjectedCoordinateSystem projectedCoordinateSystem = pSpatialReferenceFactory.CreateProjectedCoordinateSystem((int)esriSRProjCS4Typ e.esriSRProjCS_Xian1980_GK_Zone_19);//因为目标基准面和原始基准面不在同一个上,所以牵扯到参数转换,我用7参数转换ICoordinateFrameTransformation pCoordinateFrameTransformation =new CoordinateFrameTransformationClass();pCoordinateFrameTransformation.PutParameters(-112.117, 4.530,21.89,-0.00058702,-0.00476421,0.00009358,0.99998006411);pCoordinateFrameTransformation.PutSpatialReferences(CreateCustomProjectedC oordinateSystem(),projectedCoordinateSystem as ISpatialReference);//投影转换IGeometry2 pGeometry = pFromPoint as IGeometry2;pGeometry.ProjectEx(projectedCoordinateSystem as ISpatialReference,esriTransformDirection.esriTransformForward,pCoordinateFrameTransformation,false,0,0);}private IProjectedCoordinateSystem CreateCustomProjectedCoordinateSystem() {ISpatialReferenceFactory2pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();IProjectionGEN pProjection = pSpatialReferenceFactory.CreateProjection((int) esriSRProjectionType.esriSRProjection_GaussKruger) as IProjectionGEN; IGeographicCoordinateSystem pGeographicCoordinateSystem = pSpatialReferenceFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSTy pe.esriSRGeoCS_WGS1984);ILinearUnit pUnit = pSpatialReferenceFactory.CreateUnit((int)esriSRUnitType.esriSRUnit_Meter)as ILinearUnit;IParameter[] pParameters = pProjection.GetDefaultParameters();IProjectedCoordinateSystemEdit pProjectedCoordinateSystemEdit = new ProjectedCoordinateSystemClass();object pName = "WGS-BeiJing1954";object pAlias = "WGS-BeiJing1954";object pAbbreviation = "WGS-BeiJing1954";object pRemarks = "WGS-BeiJing1954";object pUsage = "Calculate Meter From lat and lon";object pGeographicCoordinateSystemObject = pGeographicCoordinateSystem asobject;object pUnitObject = pUnit asobject;object pProjectionObject = pProjection asobject;object pParametersObject = pParameters asobject;pProjectedCoordinateSystemEdit.Define(ref pName,ref pAlias,ref pAbbreviation,ref pRemarks,ref pUsage,ref pGeographicCoordinateSystemObject,ref pUnitObject,ref pProjectionObject,ref pParametersObject);IProjectedCoordinateSystem5pProjectedCoordinateSystem = pProjectedCoordinateSystemEdit as IProjectedCoordinateSystem5;pProjectedCoordinateSystem.FalseEasting = 500000;titudeOfOrigin = 0;pProjectedCoordinateSystem.set_CentralMeridian(true,111);pProjectedCoordinateSystem.ScaleFactor=1;pProjectedCoordinateSystem.FalseNorthing=0;return pProjectedCoordinateSystem;}。