gis怎么导出图层的坐标系并添加到另一个图层
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gis怎么导出图层的坐标系并添加到另一个图层相关的知识,希望对你有一定的参考价值。
参考技术A 除了 shapefile 等数据源,还可以将包含地理位置的表格数据以 x,y 坐标的形式添加到地图中。如果表中也包含 z 坐标(例如,高程值),则可以将表格数据作为 3D 内容添加到 globe 或 scene 中。X,Y 坐标用于描述地球表面上的点,例如:城市里消火栓的位置或水样采集位置。您可以使用 GPS 轻松采集 x,y 坐标数据(也经常会采集高程 [z] 值)。要将某个 x,y 坐标表添加到地图、globe 或 scene 中,该表中必须包含两个字段:一个用于 x 坐标,一个用于 y 坐标。字段中的值可以表示任意坐标系和单位,例如:纬度和精度,或米。启用 3D 几何的 z 坐标字段为可选字段。这些字段必须为数值型。如果字段不是数值,例如当坐标值以度、分和秒的形式存储(如 -120 1358)时,要将坐标转换成十进制度显示。将数据添加到地图、globe 或 scene 中后,其将成为 x,y 事件图层,该图层的行为类似于其他点要素图层。例如,您可以决定是否要显示该图层、将其符号化、设置可见比例或显示满足一定条件的要素子集。在 3D 中,您还可更改属性,例如:图层的垂直夸大值或图层距高程表面的偏移值。以图层的形式添加 x,y 数据的步骤单击文件 > 添加数据 > 添加 XY 数据。选择包含 x,y 坐标数据的表格。标识含有 x 坐标和 y 坐标的列,并且可选择性地标识含有 z 坐标的列。指定坐标系。或者,可以使用目录 窗口来选择包含 x,y 列的表,然后创建要素类。X,Y 事件图层和 ObjectID 字段如果 x,y 事件图层所基于的表中没有 ObjectID 字段,您将不能对该图层执行某些任务。分隔文本文件或 OLE DB 连接的表就是不具有 ObjectID 字段的表的一些示例。如果没有 ObjectID 字段,您将不能执行以下操作:在地图图层中选择要素。执行使用了选择集的操作,例如:从表导航到地图。编辑图层属性。不过,可直接在磁盘上编辑图层所基于的表(例如,如果是 .txt 文件,则可在文本编辑器中进行编辑),包括更改点要素的 x、y 和 z 坐标。此更改将在下次刷新视图时生效。请注意,如果 x,y 事件图层所基于的表包含 ObjectID 字段并且数据源可编辑,则可在图层上启动一个编辑会话。这样您便可在表窗口中编辑图层的属性,包括手动编辑 x,y,z 坐标字段来更改点在图层中的位置。对任意 x,y 事件图层执行任意交互式编辑操作(例如,在编辑会话中选择点,并对它们进行移动和删除,以及添加新点)。无论图层所基于的表是否具有 ObjectID 字段,都将如此。定义关联。如果要执行这些任务,可以使用下列步骤将 x,y 图层导出到要素类,或依照上述步骤使用目录窗口来通过 x,y 表创建要素类。这两种操作都将创建具有 ObjectID 字段的完整功能要素类。
将 x,y 图层另存为要素类可依照以下步骤将 x,y 图层的内容另存为要素类:右键单击 x,y 图层名称,然后单击数据 > 导出数据。将打开导出数据 对话框。设置输出坐标系,然后指定新要素类的位置和名称。单击确定保存新要素类。
如何用ArcEngine编程得到当前图层的坐标系
参考技术A 朋友,得到图层的空间参考需要在ILayer和IGeoDataset接口之间进行转换:首先使用ILayer接口得到图层ILayer layer=map.Layer[i]; 然后转换到IGeoDataset接口,访问IGeoDataset接口的SpatialReference.Name属性即可。 参考技术B 首先获取FeatureClass 以通过地图控件图层为例:IMap pMap = MapCtrl.Map;
ILayer pLayer = pMap.get_Layer(0);
IFeatureClass pFeaCls = (pLayer as IFeatureLayer).FeatureClass;
再通过IGeoDataset接口获取FeatureClass坐标系统
ISpatialReference pSpatialRef = (pFeaCls as IGeoDataset).SpatialReference;
另外 可以通过IProjectedCoordinateSystem接口获取坐标系的详细信息
IProjectedCoordinateSystem pProCoordSys = pSpatialRef as IProjectedCoordinateSystem;
IProjection pro = pProCoordSys.Projection;
pro.Name;
pProCoordSys.FalseEasting
pProCoordSys.FalseNorthing
pProCoordSys.get_CentralMeridian(true);
pProCoordSys.CoordinateUnit.Name;
IGeographicCoordinateSystem pGeographCoordinateSys =pProCoordSys.GeographicCoordinateSystem;
等等
以上是关于gis怎么导出图层的坐标系并添加到另一个图层的主要内容,如果未能解决你的问题,请参考以下文章
ArcGIS中二个图层有同样的坐标系,为啥会出现位置上的偏差,无法叠加在一起,怎样让他们没有偏移